Tìm tất cả các tệp gif hoạt hình trong một thư mục và thư mục con của nó


12

giả sử rằng tôi đã thực hiện tìm kiếm .giftệp và nhận lại một loạt các tệp. Bây giờ tôi muốn kiểm tra xem họ có phải là gifs hoạt hình không . Tôi có thể làm điều này thông qua dòng lệnh?

Tôi đã tải lên một vài ví dụ sau đây, trong trường hợp bạn muốn thử nghiệm chúng.

Ảnh GIF hoạt hình

hình ảnh hoạt hình gif

Ảnh GIF tĩnh

hình ảnh gif tĩnh

Câu trả lời:


22

Điều này có thể dễ dàng được thực hiện bằng ImageMagick

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

12 animated.gif
1 non_animated.gif

identify -format %nin số lượng khung trong gif; đối với gifs hoạt hình, con số này lớn hơn 1.

(ImageMagick có thể có sẵn trong kho của distro của bạn để cài đặt dễ dàng)


Hoàn hảo, cảm ơn - tôi đã cài đặt ImageMagick.
Max Williams

9

Sử dụng exiftool:

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

Sẽ báo cáo các đường dẫn của tệp GIF có nhiều hơn một khung (trong thư mục hiện tại, theo cách đệ quy).


5

Một cách khác với imviệc sử dụng fxtoán tử:

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

Điều này tìm kiếm thư mục hiện tại và thư mục con của nó cho .gifhình ảnh chạy lệnh shell đó cho mỗi .giftìm thấy. Nếu số khung n>1thì fxin 1, nếu không thì in 0. Điều này được dẫn đến grep -q 1vì vậy -printchỉ được thực hiện nếu trước đó -execđã thành công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.