2016-06-27 2 views
-1

OSX를 지우고 재부팅했기 때문에이 bash 기능은 더 이상 작동하지 않습니다. 나는 내가 그것을 실행하고있는 폴더에 .orig와 .pyc 파일이 있음을 분명히 볼 수 있지만, 아무것도 찾지 못한다고 알려줍니다. 나는이 기능이 어떻게 작동하는지 정확히 잊는다. 아무도 내가 무엇이 잘못되었는지 이해하도록 도와 줄 수 있습니까? 감사! 라는깨진 bash 기능

studyClean() { 
echo "------------Cleaning...------------" 
numCleaned=$(find . -type f -name ".pyc" -print -exec rm -v {} + | wc -l;) 
echo "${numCleaned} .pyc files cleaned!" 
numCleaned=$(find . -type f -name ".orig" -print -exec rm -v {} + | wc -l;) 
echo "${numCleaned} .orig files cleaned!" 
} 

터미널 출력 : 함수가 처음에 일을 왜

| ~/apps/funapp @ Simons-Air (simonbraunstein) 
| => studyClean 
------------Cleaning------------ 
     0 .pyc files cleaned! 
     0 .orig files cleaned! 
___________________________________________________ 
+1

아래 chepner의 대답은 무엇이 잘못되었는지 설명합니다. 그러나 당신의 명령은 이상합니다 :'-print'와'rm'의'-v' 옵션을 모두 사용하기 때문에, 실제로 얻을 수있는 숫자는 실제로 제거 된 파일의 수의 두 배입니다! –

+0

@gniourf_gniourf 감사합니다! 알았다. 조사 할거야! 이 기능이 훨씬 더 깨끗해 졌다고 생각했습니다. – Catlard

+0

당신의 경우에는 괜찮을 지 모르지만,'-print'를 삭제해도 적어도 출력물의 수는 제거 된 파일의 수만큼 * 많습니다 : 만약 출력이'foo \ nbar'라면, 'foo'와'bar'라는 두 개의 파일, 또는 개행 문자가있는 단일 파일 이었습니까? – chepner

답변

3

그것은 분명하지 않다. -name에 대한 인수는 정확한 이름이 .pyc.orig 인 파일과 일치해야합니다. 대신 -name "*.pyc"-name "*.orig"을 사용하십시오.

+0

아 맞습니다. trello에서 복사하여 붙여 넣으면 와일드 카드 문자가 사라집니다. 그것을 간과했다! 감사. – Catlard