.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
및 명령을 실행하는 사이에 일부 민감한 영역에 대한 심볼릭 링크로 디렉토리 이름을 바꾸고 삭제하지 않으려는 파일을 삭제하게 할 수 있습니다. 이를 방지하려면 두 번 실행하고 두 번째로 실행하세요.find
xargs
find
-delete
답변2
.php
파일 .xml
이 필요하므로 find
명령은 다음과 같아야 합니다.
find . \( -name '*.php' -o -name '*.xml' \) -type f -print -exec rm {} +
파일 블록당 한 번만 사용되는 지시어입니다 +
. 를 사용하면 각 파일에 대해 명령을 실행합니다.find
rm
\;
rm