Como posso recursivamente retirar informações exif de todas as imagens em um diretório?

5
for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done

Eu preciso adaptar esta linha de código que retira todas as informações exif das imagens de um diretório. Eu preciso disso;

  • não falhará se o diretório atual estiver vazio
  • seja recursivo para lidar com subdiretórios
  • cover * .gif * .jpeg * .png também

Alguém poderia me apontar na direção certa?

    
por Dave 12.09.2016 / 17:26

2 respostas

7

Não há necessidade de script, o ExifTool pode fazer isso sozinho e será muito mais rápido do que o loop através de itens.
exiftool -r -all= -ext jpg -ext gif -ext png /path/to/top/directory/

-r recurse por meio de subdiretórios
-ext … limite arquivos processados para extensões especificadas, remova esses itens para processar todos os arquivos para os quais o Exiftool pode remover metadados.

    
por StarGeek 12.09.2016 / 17:43
1

Como o exiftool é incrível, então não há necessidade, mas, em princípio, você poderia fazer com find algo assim ...

Primeiro, verifique se a sua pesquisa encontra o que você deseja (usando -iname para fazer com que a pesquisa seja insensível, pois tanto o .JPG quanto o .jpg etc são comuns)

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' 

se produzirá uma lista de arquivos encontrados com caminhos começando aqui (incluindo subdiretórios)

repita adicionando o comando para atuar nos arquivos encontrados no final | xargs exiftool -all=

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' | xargs exiftool -all=

ou mais seguro se os nomes dos arquivos tiverem espaços, para usar nulo como um delimitador em vez de espaços:

find . -iname '*.jpg' -print0 -or -iname '*.png' -print0 -or -iname '*.jpeg' -print0 -or -iname '*.gif' -print0 | xargs --null exiftool -all=

Se nada coincide (por exemplo, o diretório está vazio) então não faz nada

. é o diretório de trabalho atual. Se você não estiver lá, substitua find . por find /path/to/parent/directory

    
por Zanna 12.09.2016 / 18:05