파일 목록 및 삭제에 최적화된 방법

파일 목록 및 삭제에 최적화된 방법

.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명령 은 다음과 같아야 합니다..xmlfind

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

파일 청크당 한 번만 사용하라는 지침 +입니다 . 사용했다면 각 파일에 대해 하나의 명령을 실행했을 것입니다 .findrm\;rm

관련 정보