मैं अपने सिस्टम पर सभी वीडियो फ़ाइलों को कैसे पा सकता हूं?


11

मैं *.*अंतिम संशोधित = सभी प्रकार, वीडियो, और आकार = द्वारा एकता लेंस फ़ाइल खोज का उपयोग करने और फ़िल्टर करने की कोशिश की , लेकिन मुझे कुछ भी नहीं मिला, हालांकि मुझे पता है कि मेरे चित्र फ़ोल्डर में कुछ .3gp फाइलें हैं। मुझे पता है कि मेरे पास फ़ाइल सिस्टम पर एक और ड्राइव पर कई वीडियो फाइलें हैं। मैंने संभावित एक्सटेंशन की एक सूची संकलित की है और मैंने findकमांड के कई पुनरावृत्तियों को खोजने के लिए उपयोग करने की कोशिश की है ।/name "* .ext" -o "-o (आदि, आदि, विज्ञापन nauseum) बिना किसी भाग्य के। उपाय क्या है?


मैंने इसकी कोशिश नहीं की है, लेकिन OMG पर एक लेख था! FSearch ऐप के बारे में उबंटू। इसे आज़माने की आपकी इच्छा हो सकती है। omgubuntu.co.uk/2016/10/fsearch-fast-file-search-tool-linux
Jo-Erlend Schinstad

@ Jo-ErlendSchinstad सुझाव के लिए धन्यवाद, लेकिन जैसा कि मैं 3 सेकंड के अंदर सीएलआई के माध्यम से अपने परिणाम प्राप्त कर रहा हूं, मैं इस दृष्टिकोण से संतुष्ट हूं। हालांकि मैं इसे देखूंगा। :-)
एल्डर गीक

लेकिन जब तक आप कमांड को नहीं समझते, आप इसे भूल जाते हैं। और अगर आप आज्ञाओं को समझते हैं, तो आपने सवाल नहीं पूछा होगा। आइए उन लोगों के लिए उबंटू में सुधार करें जो उन लोगों के लिए आसान बनाते हैं जो सिर्फ काम करना चाहते हैं। आप ऐसा कर सकते हैं कि ऐप जोड़कर या पहले से मौजूद ऐप्स के लोगों को इंगित करके।
जो-एर्लेंड सिनचिनस्टैंड

@ Jo-ErlendSchinstad मुझे अक्सर समझ की कमी होने लगती है जो मुझे अनुसंधान और विश्लेषण के माध्यम से प्राप्त होती है। मेरा मानना ​​है कि यह दृष्टिकोण विकास के लिए महत्वपूर्ण है। खोज प्रक्रिया ने मुझे एक समाधान के लिए प्रेरित किया, जिसे मैंने यहां साझा करने के लिए चुना है क्योंकि मैंने एक स्क्रिप्ट बनाई है और इसे ~ / बिन में रखा है मुझे भूलने की संभावना नहीं है और पता है कि मुझे क्या करना है। चूंकि यह मेरे उत्तर में भी है, इसलिए प्रेरणा के साथ कोई भी इसे पार्स और समझ सकता है।
एल्डर गीक

आप सही हे। हमें वास्तव में डेस्कटॉप की आवश्यकता नहीं है। हम कमांड लाइनों का उपयोग करके लगभग सब कुछ कर सकते हैं। लेकिन अगर हम विकास करना चाहते हैं, तो हमें महसूस करना चाहिए कि अधिकांश लोग उस तरह की चीज को सीखना नहीं चाहते हैं। मैं उन डेवलपर्स को जानता हूं जो स्टैक और हीप के बीच के अंतर का वर्णन नहीं कर सकते हैं।
जो-एर्लेंड सिनचस्टेड

जवाबों:


14

वैकल्पिक: फ़ाइल पर खोजें :

sudo find . -type f -exec file -N -i -- {} + | grep video

या यदि आप केवल फ़ाइल नाम चाहते हैं ...

sudo find . -type f -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p'

-N, --no-pad: फ़ाइल नाम पैड न करें

-i, --mime: अधिक पारंपरिक मानव पठनीय लोगों के बजाय माइम प्रकार के तारों को आउटपुट करने के लिए फ़ाइल कमांड का कारण बनता है। इस प्रकार यह कह सकता है 'पाठ / सादा; charset = 'ASCII टेक्स्ट' के बजाय us-ascii '। इस विकल्प को काम करने के लिए, फ़ाइल जिस तरह से कमांड द्वारा मान्यता प्राप्त फ़ाइलों को संभालती है (जैसे पाठ फ़ाइल के कई प्रकार, निर्देशिका आदि) को बदल देती है, और एक वैकल्पिक 'मैजिक' फ़ाइल का उपयोग करती है। (नीचे अनुभाग देखें)।


फ़ाइलें अनुभाग इंगित करता है:

फ़ाइलें

/usr/share/misc/magic.mgc जादू की डिफ़ॉल्ट संकलित सूची।

/usr/share/misc/magic डिफ़ॉल्ट मैजिक फ़ाइलों वाली निर्देशिका।


file हालांकि यह (यह सभी फाइलों को खोजे जाने वाले खुल जाएगा) है, लेकिन इसका फायदा यह है कि आपको उन सभी सीमाओं को जोड़ने की आवश्यकता नहीं है।


खोज का उपयोग करना:

locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi$ *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v

कौन सा "नीचे अनुभाग",
एल्डर गीक

जोड़ा गया! यह मैन पेज में छिपा हुआ था: D
रिनविंड

यह अजीब है, मुझे उम्मीद है कि यह तेजी से होने का अनुमान लगाएगा, लेकिन आपके आदेश के साथ मुझे समय मिलेगा: वास्तविक 0m8.985 और मेरे खोज कमांड से मुझे समय मिलेगा: वास्तविक 0m2.595s
एल्डर गीक

1
ओह ... सभी फ़ाइलों का पता लगाता है। आपकी खोज यह है कि आप कहां से हैं?
रिनविंड

मैंने -e स्विच को जोड़ा, जिसका बहुत प्रभाव नहीं था, लेकिन पहले से चली गई फ़ाइलों के लिए परिणाम वापस करना सहायक नहीं लगता था। प्रदान किए गए sys समय का पता लगाने के लिए बहुत कम है, लेकिन परिणामों के लिए वास्तविक समय मैं वास्तव में परवाह करता हूं।
एल्डर गीक

5

मुझे लगता है कि यह एक 1-लाइनर के रूप में किया जा सकता है लेकिन यह थोड़ा बोझिल लग रहा था इसलिए मैंने लॉन्चिंग और संपादन में आसानी के लिए एक स्क्रिप्ट बनाई और इसे बुलाया यह findvids.shमेरे लिए काम किया है।

नोट: मैंने सभी वीडियो फ़ाइल प्रकारों को शामिल नहीं किया है , लेकिन मुझे यकीन है कि मेरे पास उनमें से अधिकांश हैं। एक उल्लेखनीय अपवाद .mkv है क्योंकि यह परियोजना के लिए लक्ष्य प्रारूप है और मुझे उन फ़ाइलों को खोजने की आवश्यकता नहीं है जिन्हें पहले ही संसाधित किया जा चुका है। अभिव्यक्ति की शुरुआत और अंत में उद्धरणों को बनाए रखते हुए पैटर्न की जांच करके और तदनुसार समायोजित करके अपनी आवश्यकताओं के अनुरूप स्क्रिप्ट में अतिरिक्त स्वरूपों (एक्सटेंशन) को जोड़ना बहुत सरल होना चाहिए। ध्यान दें कि आपके पास पढ़ने की अनुमति नहीं है फाइलें नहीं मिलेंगी।

#!/bin/bash
#This script is intended to find virtually all video file formats.
find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp*$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"

संपादित करें टिप्पणी के आधार पर:$ विस्तार का प्रतीक के अंत में खोज पद पंक्ति के अंत में पाया जाना चाहिए। अगर हम मैच शुरू करने का ^इरादा रखने से पहले लाइन की शुरुआत के बजाय मैच की शुरुआत करना चाहते थे । आप इन एंकरों को यहां और अधिक विस्तार से समझा सकते हैं

मैंने गति का पता लगाने के लिए एक गति तुलना की और परिणाम थे:

time locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v

real    0m8.887s
user    0m5.814s
sys 0m0.052s

बनाम

time find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp4$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"

real    0m2.795s
user    0m0.657s
sys 0m1.115s

अप्रत्याशित रूप से तेज है। मैं इस दृष्टिकोण का उपयोग करूंगा।

संपादित करें: आगे का परीक्षण इंगित करता है कि एक अलग मशीन पर तेजी से पता लगाया गया था। मुझे लगता है कि कैशिंग के कारण मेरे प्रारंभिक गति परीक्षण के परिणाम चारपाई थे।

सूत्रों का कहना है:

man find

man grep

/programming/7190565/unix-find-multiple-file-types


touch hello.mp4एक वीडियो फ़ाइल नहीं बनाता है: - D और आप इसे locateगति देने के लिए इसे बदलना चाह सकते हैं ।
रिनविंड

@Rinzwind मान्य बिंदु touchहालांकि इस प्रणाली पर नहीं किया गया है, यह वास्तव में इस मामले में प्रासंगिक नहीं है। जहाँ तक यह पता लगाने का संबंध है कि मुझे updatedbवर्तमान डेटा चलाने के लिए पूर्व में भागना होगा तो क्या मैं नहीं करूँगा?
एल्डर गीक

हां, हर दिन अपडेट किया जाता है, ताकि यदि आप मान सकें कि आपको कुछ घंटों तक चलने की जरूरत नहीं है (परिणाम जिस गति से वापस आता है, वह परिमाण के मुकाबले कहीं अधिक है: D)
रिनजविंड

@Rinzwind मुझे इस का उपयोग कर काम कर उदाहरण देखने के लिए प्यार करता हूँ।
एल्डर गीक

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