유닉스 매직, 디렉토리 트리에서 모든 .pyc 파일을 삭제 하시겠습니까?


11

디렉토리 트리에서 모든 .pyc 파일을 삭제하는 빠른 방법이 있습니까?

답변:


28

GNU find를 가지고 있다면 아마도 원할 것입니다.

find <directory name> -name '*.pyc' -delete

휴대용 무언가가 필요하다면

find <directory name> -name '*.pyc' -exec rm {} \;

속도는 큰 문제가있는 경우 그리고 당신은 GNU 찾기를 가지고와 GNU 다음 xargs는

find <directory name> -name '*.pyc' -print0|xargs -0 -p <some number greater than 1> rm

그러나 대부분 I / O를 기다리고 있기 때문에 속도를 크게 높일 수는 없습니다.


완벽 ... 감사합니다. 내가 항상 잊은 xargs입니다
interstar

2
이름에 공백이있는 파일이있는 경우 항상 -print0 및 "xargs -0"을 사용하는 습관을 들었습니다.
Paul Tomblin

당신은 전적으로 옳습니다. 원래 그것을 생각해 보았을 것입니다. 그것을 반영하도록 편집되었습니다.
Cian

4
'-print0 | 대신'-delete '를 직접 사용할 수도 있습니다. xargs -0 rm '. 그러나이 옵션이 모든 버전의 'find'에있는 것은 아닙니다.
rolaf

6

find 명령을 사용하여 :

find /path/to/start -name '*.pyc' -exec rm -f {} \;

너무 느립니다. xargs를 사용하는 것이 더 빠르거나 find 버전에서 지원하는 \;경우 끝에 " "를 " "로 변경하십시오 +.
추후 공지가있을 때까지 일시 중지되었습니다.

1
파일을 일괄 처리하는 대신 각 파일에 대해 "rm"을 한 번씩 실행하는 속도가 약간 느릴 수 있지만 가장 이식하기 쉬운 방법입니다. OP는 어떤 종류의 유닉스를 사용하고 있는지 말하지 않았고 Solaris find에는 여전히 -print0 기능이 없습니다.
Kenster

1
+1, OP는 리눅스가 아닌 유닉스라고 말했다. 이것이 최고의 휴대용 솔루션이다.
theotherreceive

xargs를 사용하여 잘못하지 않으면 명령 줄에 너무 긴 오류가 남을 수 있습니다. +1, 오랜 세월 이래로 나의 선택입니다.
drAlberT

makefile을 사용하여 프로젝트를 빌드하는 경우 대상 "clean"에 추가 할 수 있습니다.
Tom Newton

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.