find
을(를) 사용하여 여러 파일을 검색 하고 을(를) 사용하여 모든 파일을 삭제하고 싶습니다 -exec
. 나는 노력했다
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
그러나 이것은 fileAs가 아닌 "fileB" 파일만 삭제하는 것 같습니다.
답변1
-o
액션에서도 작동하므로 항목을 그룹화해야 합니다.
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
그런데 find
구현에서는 다음을 지원할 수도 있습니다 -delete
.
find ./ -type f \( -name fileA -o -name fileB \) -delete
답변2
또 다른 옵션:
WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted.
find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f
또는 가능하다면 흥미로운 문자가 포함된 파일을 캡처하세요.
NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method)
find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f