일련의 하위 디렉터리에서 특정 파일 삭제

일련의 하위 디렉터리에서 특정 파일 삭제

그 안에 여러 하위 디렉터리가 있는 디렉터리가 있습니다. 각 하위 디렉터리에는 여러 개의 파일이 있습니다. .pdf 파일을 제외한 하위 디렉터리의 모든 파일을 삭제하고 싶습니다. 그리고 하위 디렉터리를 유지하세요. 나는 사용했다

find . -type f ! -iname "*.pdf" -delete

하지만 이것이 작동하려면 하위 디렉터리에 있어야 합니다. 나는 또한 그것을 재귀적으로 하고 싶다.

답변1

Bash에서 현재 디렉터리의 모든 하위 디렉터리에 있는 PDF가 아닌 모든 파일을 삭제하려면 다음을 수행하세요.

shopt -s extglob
rm */!(*.pdf)

첫 번째 문자는 */각 하위 디렉터리와 일치하며,외부 전역 옵션!( ... )다음 모드 활성화 : 모든 파일 일치와는 별개로이 경우 제외할 패턴은 괄호 안에 있습니다 *.pdf. .PDF해당 확장자를 가진 파일이 아직 남아 있는 경우 다음을 대신 사용하세요.

rm */!(*.[pP][dD][fF])

관련 정보