フォルダ内のファイルを削除するには、次のコマンドを使用しています。しかし、私のコマンドはすべてを削除することです。
ionice -c 3 find . -type f -print -delete
サフィックスがある場合は、ファイルを削除したくありません_y
。
私のフォルダの表示は次のとおりです。
123a.jpg -> Should delete
4567.jpg -> Should delete
7644_y.png -> Should not delete
12234_y.jpeg -> Should not delete
5753.jpg -> Should delete
私のコマンドはこれをどのように達成すべきですか?
答え1
あなたの例によると、以下を含む名前を除外したいと思います。_y
サブストリング。
find . -type f ! -name '*_y*' -print -delete
(ionice -c 3
必要に応じて前に使用しても構いませんが、何をしても構いませんfind
。)
_y
デフォルトの名前の末尾にのみファイルをアーカイブするには(したがって12234_y_.jpeg
削除されます)、次のものを使用できます。
find . -type f ! -name '*_y.*' -print -delete
答え2
再帰サブディレクトリを具体的に使用する場合、find
この回答は適用されません。ただし、現在のディレクトリのファイルのみを削除する場合、bash関連のオプションは次のとおりです。
shopt -s extglob
rm -v !(*_y.*)
これには、パターンに一致する非ファイル(ディレクトリ)を削除しようとする追加の制限があります。