여러 디렉토리에서 특정 파일을 삭제하는 방법은 무엇입니까?

여러 디렉토리에서 특정 파일을 삭제하는 방법은 무엇입니까?

정기적으로 약 10개의 디렉터리에서 특정 파일과 하위 디렉터리를 삭제하고 싶습니다. 각 디렉터리의 이러한 파일과 하위 디렉터리는 동일한 이름을 갖습니다. 내 의사 언어는 다음과 같습니다

["dir1", "dir2", "dir3", "dir4"].each do |dir| 
  remove "#{dir}/file1"
  remove "#{dir}/file2"
  remove_rf "#{dir}/sub_dir1"
  remove_rf "#{dir}/sub_dir2"
end

Bash에서 이 작업을 어떻게 수행합니까?

답변1

의사 코드에 해당하는 쉘은 다음과 같습니다.

for dir in dir1 dir2 dir3 dir4; do
    rm "${dir}/file1" "${dir}/file2"
    rm -rf "${dir}/sub_dir1" "${dir}/sub_dir2"
done

이는 다양한 방식으로 작성될 수 있습니다.

rm -rf {dir1,dir2,dir3,dir4}/{file1,file2,sub_dir1,sub_dir2}

(여기서의 행동은 그렇지 않습니다.상당히동일: 결과 file1file2디렉토리인 경우 첫 번째 구현은 오류로 인해 실패하고 두 번째 구현은 모든 것을 삭제합니다. )

관련 정보