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


25

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

나는 시도했다 :

rm -r file

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

답변:



12

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

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


3
변수 대체를 항상 큰 따옴표로 묶으십시오. 그렇지 않으면 명령이 특정 특수 문자 (공백, 와일드 카드 및 백 슬래시)를 포함하는 파일 이름에서 작동하지 않습니다.
Gilles 'SO- 악마 그만

@Gilles-예,이 답변이 정확한지 확인하고 업데이트 해 주셔서 감사합니다.
Wayne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.