Exporta a dimensão da imagem para o texto?

0

Eu tenho uma imagem chamada a.jpg. Eu uso "feh - imlib2 based viewer" para obter informações sobre a dimensão da imagem. O comando que eu uso é

feh -l a.jpg

E o resultado é

NUM FORMAT  WIDTH   HEIGHT  PIXELS  SIZE(bytes) ALPHA   FILENAME
1   jpeg    1280    960     1228800 91319       -       a.jpg

Agora tenho cerca de 160.000 imagens no meu diretório, gostaria de exportar essas dimensões de imagem para texto. O comando que eu uso é:

feh -l * > dimension.txt

Mas quando eu faço, diz:

bash: /usr/bin/feh: Argument list too long

Alguém sabe qual é o comando adequado?

    
por user3195859 29.05.2014 / 14:20

1 resposta

1
find . -type f -print0 | xargs -0 feh -l > dimension.txt

find gera nomes de arquivos para todos os arquivos no subdir (e recursivamente também, se isso for um problema, adicione -maxdepth 1 ao comando find), ele os envia como dados terminados em byte ZERO para xargs. Fazemos isso para poder manipular apropriadamente nomes de arquivos com espaços (e outros tipos de lixo).

xargs reúne os nomes, colocando o máximo que puder em cada linha de comando usada para executar o feh. Ele executa novamente a linha de comando até que todos os nomes sejam usados.

Existe também o programa identify do pacote imagemagick , ele faz exatamente o mesmo que o comando feh -l , mostrando as dimensões. O uso desses muitos arquivos seria semelhante, substituindo feh -l no comando xargs .

    
por 29.05.2014 / 23:46