すべてのファイル(フォルダとサブフォルダ)に対してコマンドを実行する

すべてのファイル(フォルダとサブフォルダ)に対してコマンドを実行する

とにかくPDFファイルが多いです。フォルダとサブフォルダのすべてのPDFに同時に適用する方法はありますか?

たとえば、次のようになります。

  • /pdf/test/pdfa.pdf
  • /pdf/example/aa/test.pdf

このコマンドを各ファイルに適用したいと思います。

$ convert -density 200x200 -quality 60 \
    -compress jpeg filename.pdf filename_compress.pdf

誰が私を助けることができますか?

ベストアンサー1

出力ファイルに少し異なる命名スキームを採用するのが最も簡単です。これは次filename.pdfのように翻訳されますfilename.pdf-compress.pdf

find . -name '*.pdf' -exec convert -density 200x200 -quality 60 -compress jpeg {} {}-compress.pdf ';'

元の命名方式を維持するには、次のようにします。

find . -name '*.pdf' -exec env f={} bash -c 'convert -density 200x200 -quality 60 -compress jpeg "$f" ${f%.pdf}_compress.pdf' ';'

おすすめ記事