[unix] 모든 하위 디렉토리에서 지정된 이름의 모든 파일을 어떻게 삭제합니까?

내 홈 디렉토리의 모든 하위 디렉토리에서 지정된 이름의 모든 파일을 삭제하고 싶습니다.

나는 시도했다 :

rm -r file

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



답변

find . -name "filename" -delete


답변

@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>

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


답변