एक निर्देशिका और उसकी उपनिर्देशिका में सभी एनिमेटेड जिफ फाइलें खोजें


12

मान लीजिए कि मैंने .gifफ़ाइलों के लिए एक खोज की है और फ़ाइलों का एक गुच्छा वापस मिल गया है। मैं अब उन्हें यह देखने के लिए परीक्षण करना चाहता हूं कि क्या वे एनिमेटेड जिफ हैं। क्या मैं कमांड लाइन के माध्यम से ऐसा कर सकता हूं?

यदि आप उन पर प्रयोग करना चाहते हैं, तो मैंने निम्नलिखित में कुछ उदाहरणों को अपलोड किया है।

एनिमेटेड GIF छवि

एनिमेटेड जिफ छवि

स्थैतिक GIF छवि

स्थिर जिफ छवि

जवाबों:


22

यह आसानी से ImageMagick का उपयोग करके किया जा सकता है

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

12 animated.gif
1 non_animated.gif

identify -format %nगिफ़ में फ़्रेमों की संख्या प्रिंट करता है; एनिमेटेड GIF के लिए, यह संख्या 1 से बड़ी है।

(ImageMagick शायद आपके डिस्ट्रो रिपॉजिटरी में एक आसान इंस्टॉल के लिए आसानी से उपलब्ध है)


बिल्कुल सही, धन्यवाद - मैं पहले से ही स्थापित ImageMagick है।
मैक्स विलियम्स

9

का उपयोग कर exiftool:

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

जीआईएफ फ़ाइलों के रास्तों की रिपोर्ट करेगा जिनमें एक से अधिक फ्रेम हैं (वर्तमान निर्देशिका में, पुनरावर्ती रूप से)।


5

ऑपरेटर 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सफल था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.