html
각 폴더에 파일이 포함된 수천 개의 폴더가 있습니다 . grep이 example.com
파일에서 일치하는 항목을 찾지 못하면 전체 폴더를 삭제하고 싶습니다 html
.
일치하지 않는 파일을 삭제하는 방법을 알고 있습니다. 예를 들면 다음과 같습니다.
grep -ZrLIi "example.com" "/dir/htmls/" | xargs -0 -I {} rm -f --
하지만 파일 자체를 삭제하는 것은 아닙니다. 파일이 있는 폴더 전체(다른 파일 포함)를 삭제하려면 어떻게 해야 합니까?
답변1
grep에서 POSIX가 아닌 플래그를 사용하고 있으므로 GNU coreutils가 있다고 가정합니다.
grep -ZrLIiF "example.com" /dir/htmls | xargs -0 dirname -z | sort -zu | xargs -0 echo rm -rf
출력이 올바르면 echo
이전 콘텐츠를 삭제하세요. 또한 정규식 일치 대신 문자 일치를 수행하는 옵션 rm
도 추가했습니다 .-F