0

特定のディレクトリ内のすべてのpng画像を削除したい。

次のディレクトリと画像があります。すべての png ファイルを一度に削除するにはどうすればよいですか?

.
├──1
│ ├── 2
│ │ ├── 3
│ │ └── 3.png
│ └── 2.png
└──1.png

次のコマンドを試しました。

rm -rf *.png       #only 1.png was deleted.
rm -rf **/*.png    #only 2.png was deleted.
rm -rf **/**/*.png #only 3.png was deleted.
4

3 に答える 3

2

globstar再帰的なグロビングを機能させるには、オプション (Bash 4 で導入)を設定する必要があります。

Bashリファレンスマニュアルより

globstar

    設定されている場合、ファイル名展開コンテキストで使用されるパターン '**' は、すべてのファイルと 0 個以上のディレクトリおよびサブディレクトリに一致します。パターンの後に「/」が続く場合、ディレクトリとサブディレクトリのみが一致します。

だからこれはうまくいくはずです

shopt -s globstar
rm -f **/*.png

または代わりにfinddeleteアクション

find . -name '*.png' -delete

の「-r」スイッチに関する注意rm:

-r「ディレクトリとその内容を再帰的に削除する」に切り替えます (ソース: man rm )。デフォルトでrmは、ディレクトリを削除できません。このスイッチは、ファイル名の展開またはグロビングの動作を変更しません。

于 2013-07-06T17:26:11.143 に答える
0

find . -name \*.png | xargs rm

于 2013-07-06T17:16:39.567 に答える
0
find . -name "*.png" -exec rm -rf {} \;

この投稿には非常によく似た質問があります:プロジェクトからすべての .pyc ファイルを削除するにはどうすればよいですか?

于 2013-07-06T17:18:55.700 に答える