.gif
ファイルの検索を行って、たくさんのファイルを取り戻したとしましょう。次に、アニメーション GIFであるかどうかをテストします。コマンドライン経由でこれを行うことはできますか?
あなたがそれらを実験したい場合のために、私は以下にいくつかの例をアップロードしました。
.gif
ファイルの検索を行って、たくさんのファイルを取り戻したとしましょう。次に、アニメーション GIFであるかどうかをテストします。コマンドライン経由でこれを行うことはできますか?
あなたがそれらを実験したい場合のために、私は以下にいくつかの例をアップロードしました。
回答:
これは、ImageMagickを使用して簡単に実行できます。
identify -format '%n %i\n' -- *.gif
12 animated.gif
1 non_animated.gif
identify -format %n
gifのフレーム数を出力します; アニメーションGIFの場合、この数は1より大きいです。
(ImageMagickは、簡単にインストールできるように、おそらくディストリビューションのリポジトリで簡単に入手できます)
を使用してexiftool
:
exiftool -q -if '$framecount > 1' -p '$directory/$filename' -r -ext:gif .
複数のフレームを持つGIFファイルのパスを報告します(現在のディレクトリに再帰的に)。
演算子をim
使用する別の方法fx
:
find . -type f -name \*.gif -exec sh -c \
'identify -format "%[fx:n>1]\n" "$0" | grep -q 1' {} \; -print
これにより、現在のディレクトリとそのサブディレクトリで、検出さ.gif
れた各シェルコマンドを実行しているイメージが検索.gif
されます。フレーム数が場合はn>1
、次にfx
印刷し1
、それ以外の場合は、印刷します0
。これはパイプされるgrep -q 1
ため-print
、前のコマンド-exec
が成功した場合にのみ実行されます。