一連のサブディレクトリから特定のファイルを削除する

一連のサブディレクトリから特定のファイルを削除する

その中に複数のサブディレクトリがあるディレクトリがあります。各サブディレクトリには複数のファイルがあります。 .pdfファイルを除くサブディレクトリ内のすべてのファイルを削除したいと思います。そしてサブディレクトリを維持してください。使った

find . -type f ! -iname "*.pdf" -delete

ただし、これを機能させるにはサブディレクトリに配置する必要があります。私はまたそれを再帰的にしたいと思う。

ベストアンサー1

Bashから現在のディレクトリのすべてのサブディレクトリにあるPDF以外のすべてのファイルを削除するには、次の手順を実行します。

shopt -s extglob
rm */!(*.pdf)

最初の文字は*/各サブディレクトリと一致し、外部グローバルオプション!( ... )次のモードを有効にする:すべてのファイルの一致とは別にこの場合、除外するパターンは括弧内にあります*.pdf.PDFその拡張子を持つファイルがまだ残っている場合は、次の代わりに使用してください。

rm */!(*.[pP][dD][fF])

おすすめ記事