複数のディレクトリから特定のファイルを削除する方法は?

複数のディレクトリから特定のファイルを削除する方法は?

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

おすすめ記事