定期的に約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
ディレクトリの場合、最初の実装はエラーのために失敗し、2番目の実装はすべてを削除します。 )