현재 디렉터리, 빈 디렉터리, 현재 디렉터리를 포함하여 여러 이름을 가진 파일이 있는 디렉터리의 모든 파일을 반복적으로 삭제합니다.

현재 디렉터리, 빈 디렉터리, 현재 디렉터리를 포함하여 여러 이름을 가진 파일이 있는 디렉터리의 모든 파일을 반복적으로 삭제합니다.

*.pyc를 모두 제거하려고 하는데파이캐시, 그리고 보고 싶지 않은 다른 어리석은 파일 언어는 실행해야 합니다. 내가 얻은 가장 가까운 것은

sudo rm -rf **/*__pycache__

답변, 이것은 경로 깊은 곳에서는 작동하지 않습니다.

sudo rm -R -f {__pycache__,.*.pyc}

이건 작동하지 않아파이캐시폴더.

webapi/__pycache__
webapi/cool_app/__pycache__
webapi/cool_app/bad_file.pyc
webapi/cool_app/keep_this_awesomeness.py
webapi/cool_app/sweet_folder/__pycache__
webapi/cool_app/sweet_folder/bad_file.pyc
webapi/cool_app/sweet_folder/keep_this_awesomeness.py

오직

webapi/cool_app/keep_this_awesomeness.py 
webapi/cool_app/sweet_folder/keep_this_awesomeness.py

유지하다.

답변1

find . \( -name __pycache__ -o -name "*.pyc" \) -delete

답변2

rm쉘이 이를 지원하는 경우 파일 재귀 탐색 및 삭제를 위해 쉘 자체를 사용할 수 있습니다 .

bash예를 들어 , 셸 옵션 에서는 globstarglob 패턴이 **모든 깊이의 하위 디렉터리와 일치하도록 허용하고 일반 globbing 연산자를 사용하여 파일을 일치시킬 수도 있습니다.

귀하의 경우:

rm **/{*.pyc,__pycache__}

할 것입니다.

먼저 다음을 활성화합니다 globstar.

shopt -s globstar

답변3

귀하의 경우에는 할 수도 있습니다

find . -name "__pycache__" -o -name "*.pyc" | xargs rm -rf

내장된 명령만을 사용하여 제작되었습니다. globstar를 활성화하는 것을 방지합니다.

관련 정보