Temukan semua file gif animasi dalam direktori dan subdirektori


12

katakanlah bahwa saya telah melakukan pencarian untuk .giffile dan mendapat banyak file kembali. Saya sekarang ingin menguji mereka untuk melihat apakah mereka gif animasi . Bisakah saya melakukan ini melalui baris perintah?

Saya telah mengunggah beberapa contoh berikut ini, jika Anda ingin bereksperimen.

Gambar GIF animasi

gambar animasi gif

Gambar GIF statis

gambar gif statis

Jawaban:


22

Ini dapat dengan mudah dilakukan menggunakan ImageMagick

identify -format '%n %i\n' -- *.gif

12 animated.gif
1 non_animated.gif

identify -format %nmencetak jumlah bingkai di gif; untuk gif animasi, jumlah ini lebih besar dari 1.

(ImageMagick mungkin sudah tersedia di repo distro Anda untuk pemasangan yang mudah)


Sempurna, terima kasih - saya sudah menginstal ImageMagick.
Max Williams

9

Menggunakan exiftool:

exiftool -q -if '$framecount > 1' -p '$directory/$filename' -r -ext:gif .

Akan melaporkan jalur file GIF yang memiliki lebih dari satu frame (dalam direktori saat ini, secara rekursif).


5

Cara lain dengan immenggunakan fxoperator:

find . -type f -name \*.gif -exec sh -c \
'identify -format "%[fx:n>1]\n" "$0" | grep -q 1' {} \; -print

Ini mencari direktori saat ini dan subdirektori untuk .gifgambar yang menjalankan perintah shell untuk setiap yang .gifditemukan. Jika jumlah bingkai n>1kemudian fxdicetak 1, jika tidak maka akan dicetak 0. Ini disalurkan ke grep -q 1sehingga -printhanya dieksekusi jika sebelumnya -execberhasil.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.