정기적으로 약 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}
(여기서의 행동은 그렇지 않습니다.상당히동일: 결과 file1
가 file2
디렉토리인 경우 첫 번째 구현은 오류로 인해 실패하고 두 번째 구현은 모든 것을 삭제합니다. )