大きなツリーの特定の名前のフォルダから特定の拡張子を持つすべてのファイルを削除する方法は?

大きなツリーの特定の名前のフォルダから特定の拡張子を持つすべてのファイルを削除する方法は?

pdf私はその中にたくさんのファイルを含む大きな木を持っています。このツリーからファイルを削除したいが、他の種類のファイルもあるサブフォルダpdfからのみ削除したいと思います。このサブフォルダには他のサブフォルダはありません。pdfrules/rules/rules/

たとえば、私はこのような木を持っています。 「ソース」の下のすべての内容

  source/
         A/
            rules/*.pdf, *.txt, *.c,etc..
            etc/
         B/
            keep_this.pdf                
            rules/*.pdf
            whatever/
         C/ 
            D/
               rules/*.pdf
               something/

など。どこにもファイルはありますが、他の場所は削除せず、名前付きフォルダ内のすべてのファイルpdfのみを削除したいと思います。pdfrules/

使うべきだと思います。

  cd source
  find  / -type d -name "rules"  -print0 | xargs -0 <<<rm *.pdf?? now what?>>>

しかし、名前付きのすべてのサブフォルダのリストをインポートした後に何をすべきかわかりません。rules/

助けてくれてありがとう。

Linuxミントから。

ベストアンサー1

私はfind他のものの中で一つをしますfind。たとえば、次のコマンドラインを実行して、削除するファイルを一覧表示します。

$ find /path/to/source -type d -name 'rules' -exec find '{}' -mindepth 1 -maxdepth 1 -type f -iname '*.pdf' -print ';'

次にリストを確認し、次の操作を行います。

$ find /path/to/source -type d -name 'rules' -exec find '{}' -mindepth 1 -maxdepth 1 -type f -iname '*.pdf' -print -delete ';'

おすすめ記事