web-dev-qa-db-ja.com

すべてのサブディレクトリにある特定の名前のすべてのファイルを削除するにはどうすればよいですか?

ホームディレクトリのすべてのサブディレクトリにある特定の名前のすべてのファイルを削除したい。

私は試した:

rm -r file

私のホームディレクトリにありますが、そのファイルがそのディレクトリに存在しないため、機能しませんでした。

27
oadams

find . -name "filename" -delete

40
tante

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

いつものように、実行前にスクリプトの正確性を確認し、何か問題が発生した場合に備えて常にバックアップの準備をしておいてください。

12
Wayne