Execute Comand em todos os arquivos (pastas e subpastas de anúncios) [duplicado]

1

Todos, eu tenho muitos arquivos PDF. Existe uma maneira de aplicar todos os PDFs em pastas e subpastas de uma só vez?

Exemplo, eu tenho:

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

Gostaria de aplicar este comando em cada arquivo:

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

Alguém pode me ajudar?

    
por Hid Dencum 29.09.2014 / 02:43

1 resposta

1

É mais simples se escolhermos um esquema de nomenclatura ligeiramente diferente para os arquivos de saída. Isso converte filename.pdf em filename.pdf-compress.pdf :

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

Se você quiser manter seu esquema de nomenclatura original, use:

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