파일 나열 및 삭제 방법 최적화

파일 나열 및 삭제 방법 최적화

.php, .xml 파일을 나열하고 삭제해야 합니다. 이를 위해 나는 find명령을 사용합니다.

목록: find . -type f -name \*.php -print0

삭제: find . -type f -name \*.php -print0 | xargs -0 rm -r

두 번 뛰었을 때 find. 첫 번째 명령의 결과를 저장한 다음 두 번째 명령에서 다시 사용할 수 있습니까?

감사해요.

답변1

find . -type f -name '*.php' -print0 | tee list | tr \\0 \\n
xargs -r0 rm -f < list

목록을 삭제하기로 결정하기 전에 목록을 검토하고 싶다고 가정해 보겠습니다. 그렇지 않은 경우 간단히 다음을 수행할 수 있습니다.

find . -name '*.php' -type f -print -delete

-print0( , -delete, -r-0표준이 아니지만 GNU 구현에서 지원된다는 점에 유의하세요 )

또한 상대적으로 안전하지만 첫 번째 솔루션에서는 누군가 find -delete및 명령을 실행하는 사이에 일부 민감한 영역에 대한 심볼릭 링크로 디렉토리 이름을 바꾸고 삭제하지 않으려는 파일을 삭제하게 할 수 있습니다. 이를 방지하려면 두 번 실행하고 두 번째로 실행하세요.findxargsfind-delete

답변2

.php파일 .xml이 필요하므로 find명령은 다음과 같아야 합니다.

find . \( -name '*.php' -o -name '*.xml' \) -type f -print -exec rm {} +

파일 블록당 한 번만 사용되는 지시어입니다 +. 를 사용하면 각 파일에 대해 명령을 실행합니다.findrm\;rm

관련 정보