모든 하위 디렉터리에서 특정 이름을 가진 모든 파일을 삭제하는 방법은 무엇입니까?

모든 하위 디렉터리에서 특정 이름을 가진 모든 파일을 삭제하는 방법은 무엇입니까?

내 홈 디렉터리의 모든 하위 디렉터리에서 특정 이름을 가진 모든 파일을 삭제하고 싶습니다.

나는 시도했다:

rm -r file

내 홈 디렉토리에 있지만 해당 디렉토리에 파일이 없기 때문에 작동하지 않습니다.

답변1

find . -name "filename" -delete

답변2

@tante의 답변을 자세히 설명하면 다음 파일을 삭제하기 전에 올바른 파일 목록을 사용하고 있는지 확인할 수 있습니다.

find <source_dir> -name <filename> -print

수표에 유효한 목록이 표시되면

find <source_dir> -name <filename> -delete

임시 저장 디렉터리를 사용하여 여러 디렉터리에서 이 작업을 수행하려는 경우 다른 옵션이 있습니다:

mkdir <dest_dir>
for i in <list_of_directories>
do
  find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done

# check dest_dir
ls dest_dir
rm -rf <dest_dir>

언제나 그렇듯이 스크립트를 실행하기 전에 스크립트의 정확성을 확인하고 문제가 발생할 경우를 대비해 항상 백업을 준비하십시오.

관련 정보