উবুন্টুতে ভিডিও ফাইলগুলি কীভাবে অনুসন্ধান করবেন?


12

আমি কয়েক মাস আগে একটি ভিডিও ডাউনলোড করেছি। আমি নামটি খুব ভালভাবে স্মরণ করছি না যার দ্বারা এটি সংরক্ষণ করা হয়েছে। এমন কোনও আদেশ বা কোনও পদ্ধতি আছে যা কেবলমাত্র ভিডিও ফাইলগুলি আউটপুট দেয় যাতে আমি আমার ভিডিওটি সেখানে অনুসন্ধান করতে পারি? ম্যান পৃষ্ঠাগুলি থেকে, আমি সেই কাজটি করার কোনও বিকল্প খুঁজে পাইনি।

আমি ডাউনলোড করা ভিডিও ফাইলটির কোনও এক্সটেনশন থাকতে পারে (যেমন ওয়েবম ইত্যাদি) এবং এটিও সম্ভবত আমার সেই সময়টির নামটি 'অ্যাবসিডি'র মতো কোনও কিছুতে পরিবর্তন করা হয়েছিল যা এখন আমার মনে নেই। সুতরাং অনুসন্ধান ফাইলের নামের উপর ভিত্তি করে করা যাবে না!

(কেবলমাত্র একটি মিলের উল্লেখ করে: পার্লে কোনও ফাইল পাঠ্য ফাইল বা বাইনারি ইত্যাদি পরীক্ষা করার জন্য কমান্ড রয়েছে। একইভাবে এর ভিডিও ফাইল বা মাল্টিমিডিয়া ফাইল কিনা তা যাচাই করার উপায় রয়েছে)

উত্তর:


15

মূল ধারণাটি হ'ল প্রতিটি ফাইলের ধরণ নির্ধারণ করতে ফাইল ইউটিলিটিটি ব্যবহার করা এবং ভিডিও ফাইলগুলিতে ফিল্টার করা।

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

এটি সমস্ত ফাইলের নাম /some/directoryএবং এর উপ-ডিরেক্টরিগুলি পুনরাবৃত্তভাবে মুদ্রণ করে যার MIME টাইপ একটি ভিডিও টাইপ।

fileকমান্ড প্রতিটি ফাইল, যা ধীর হতে পারে খোলা দরকার। জিনিসগুলি গতি বাড়ানোর জন্য:

  • ডিরেক্টরি গাছ যেখানে এটি যেমন হওয়ার সম্ভাবনা নেই, এর কমান্ড সীমাবদ্ধ /tmp, /var/tmpএবং আপনার বাড়িতে ডিরেক্টরি।
  • যার আকার ডান বলপার্কে রয়েছে তার সন্ধানটি সীমাবদ্ধ করুন, কমপক্ষে 10 এমবি বলুন।
  • এমন ফাইলগুলিতে অনুসন্ধান সীমাবদ্ধ করুন যার পরিবর্তনের সময়টি সঠিক বলপার্কে রয়েছে। নোট করুন যে ফাইলটি ডাউনলোড করার সময় আপনি কোনও প্রোগ্রাম ডাউনলোড করতে (এবং কোন সেটিংস সহ) ব্যবহার করেছেন তার উপর নির্ভর করে ডাউনলোডের সময় পরিবর্তনের সময়টি সেট করে থাকতে পারে বা সময় সংরক্ষণ করেছে। আপনি ইনোড পরিবর্তনের সময় (সিটিএম) -এও ফিল্টার করতে পারেন, যে সময়টি কোনওভাবেই সর্বশেষে ফাইলটি সর্বশেষ সংশোধন করা বা আশেপাশে সরিয়ে নেওয়া (তৈরি করা, নামকরণ করা ইত্যাদি) স্থানান্তরিত হতে পারে।

এখানে এমন একটি উদাহরণ রয়েছে যা পরিবর্তনের সময়কে কমপক্ষে ago০ দিন আগের হতে এবং সিটিএমটি ১০০ দিন আগের চেয়ে বেশি হতে না পারে।

find /tmp /var/tmp ~ -type f -size +10M \
     -mtime +60 -ctime -100 \
     -exec file -N -i -- {} + |
sed -n 's!: video/[^:]*$!!p'

আপনার প্রথম কমান্ডটি আরও অনেকগুলি (ভিডিও ব্যতীত) ফাইল আনছে। উদাহরণস্বরূপ আউটপুটটির /home/ravbholua/Downloads/Music_Command_line/[SOLVED] a code question regarding music file extensions_files/avatar774785_6.gif: image/jpeg; charset=binary একটি লাইন হ'ল: আউটপুটটির আর একটি লাইন: /home/ravbholua/Free Computer Networking Books Download | Ebooks Online Textbooks.html: text/html; charset=iso-8859-1 আমার কেবলমাত্র ভিডিসি প্লেয়ার ইত্যাদি চলবে এমন ভিডিও ফাইলগুলি দরকার
রবি

@ রবি আমি দুর্ঘটনাক্রমে sedঅ-ম্যাচিং লাইনগুলি (এবং fileভুল জায়গায় লাইন না ভাঙার বিকল্প) বাদ দেওয়ার বিকল্পটি ছেড়ে দিয়েছিলাম , আমার সম্পাদনা দেখুন।
গিলস 16'j

হ্যাঁ গিলস, এটাই আমি চেয়েছিলাম। যে দুর্দান্ত কাজ করেছে! আপনার কমান্ড চালানোর পরে, আমি জানতে পারি যে আমার সিস্টেমে অনেকগুলি ভিডিও রয়েছে (কিছু সম্পূর্ণ এবং কিছু অসম্পূর্ণ) যা আমি অবগত ছিলাম না। ধন্যবাদ.
রবি

1
আপনার ভিডিও ফাইলগুলির পূর্বাভাসযোগ্য এক্সটেনশন না থাকলে এটিই আদর্শ সমাধান। অবলম্বন করা fileএকমাত্র বিকল্প।
মাইগুএলগ

13

ফাইলের নাম অনুসারে অনুসন্ধান করা হচ্ছে

ক্রিস তার উত্তরে উল্লিখিত হিসাবে আপনি এটি করতে ব্যবহার করতে পারেন findতবে locateডাটাবেসের মাধ্যমে অনুসন্ধান করা আমার কাছে খুব দ্রুত খুঁজে পাওয়া যায় ।

আপনার ডিস্ট্রো এই সুবিধা সরবরাহ করে বলে ধরে নিচ্ছেন, বেশিরভাগ বড়রা হ'ল উবুন্টু, ফেডোরা, সেন্টস ইত্যাদি provides

উদাহরণ

$ locate --basename .mp4 .mkv .wmv .flv .webm .mov .avi | head -5
/home/saml/Desktop/sample_mpeg4.mp4
/home/saml/Downloads/Karrolls_Christmas/Karroll's Christmas (2004) part 1.mp4
/home/saml/Downloads/Karrolls_Christmas/Karroll's Christmas (2004) part 10.mp4
/home/saml/Downloads/Karrolls_Christmas/Karroll's Christmas (2004) part 2.mp4
/home/saml/Downloads/Karrolls_Christmas/Karroll's Christmas (2004) part 3.mp4

ফাইলের ধরণ অনুসারে অনুসন্ধান করা হচ্ছে

টাইপ করে ফাইলগুলি সন্ধান করতে আপনি fileনির্দিষ্ট ফাইলের ধরণ সম্পর্কে তথ্যের একটি তালিকা পেতে কমান্ডটি ব্যবহার করতে পারেন ।

আমার সিস্টেম ফেডোরা 19 থেকে এই ফাইল ধরণের মোটামুটি তালিকা এখানে।

  • .mp4: আইএসও মিডিয়া, এমপিইজি ভি 4 সিস্টেম, সংস্করণ 1
  • .mkv: EBML ফাইল, স্রষ্টা ম্যাট্রোস্কা
  • .wmv: মাইক্রোসফ্ট এএসএফ
  • .flv: ম্যাক্রোমিডিয়া ফ্ল্যাশ ভিডিও
  • .webm: WebM
  • .mov: আইএসও মিডিয়া, অ্যাপল কুইকটাইম মুভি
  • .আবি: এভিআই

আপনি আপনার /home/<user>ডিরেক্টরিতে সমস্ত ফাইল সন্ধান করতে এই আদেশটি ব্যবহার করতে পারেন ।

$ find /home/<user> -type f -exec file {} + | \
    grep -E "MPEG v4|EBML|\
      Microsoft ASF|Macromedia Flash Video|WebM|Apple QuickTime movie|AVI"

বিকল্পভাবে আপনি fileমাইম-প্রকারগুলি দ্বারা "ভিডিও" হিসাবে শ্রেণিবদ্ধ করা এবং ব্যবহার করতে পারেন ।

 -i, --mime
         Causes the file command to output mime type strings rather than 
         the more traditional human readable ones.  Thus it may say 
         ‘text/plain; charset=us-ascii’ rather than “ASCII text”.

আমরা উপরের কাজগুলি এর মতো কিছুতে রূপান্তর করছি:

$ find /home/<user> -type f -exec file -i {} + | grep video

আপনি sedকেবল ফাইলের নাম পেতে ব্যবহার করতে পারেন :

$ find /home/<user> -type f -exec file -i {} + |
    sed -n '/video/s/:[^:]\+$//p'

+1, এটি অবশ্যই অবশ্যই ধরে নেই যে locateইনস্টল করা আছে, তবে এটি ডাটাবেসটি নির্মিত।
ক্রিস ডাউন

হ্যাঁ, ডাটাবেসগুলি প্রায়শই বেশিরভাগ ডিস্ট্রোজে রাত্রে তৈরি হয়, সুতরাং সম্প্রতি যুক্ত ফাইলগুলি রাত্রে কাজ চালানো এবং এগুলি যোগ না করা পর্যন্ত ডিবিতে থাকবে না।
slm

1
আপনি সবচেয়ে সাধারণ একটি ভুলে গেছেন avi,।
ফাহিম মিঠা

6

যেহেতু আপনি এখন উল্লেখ করেছেন যে এটি এক্সটেনশনের ভিত্তিতে করা যায় না, তাই আপনি অনুধাবন করতে পারেন file(সতর্কতা: এটি একটি দীর্ঘ সময় নিতে পারে):

find ~ -type f -exec file -i {} + | grep video 

যদি আপনি ফাইলের নাম দিয়ে অনুসন্ধান করতে পারতেন তবে ধরে নিই যে এটির একটি সাধারণ ভিডিও এক্সটেনশন রয়েছে এবং এটি আপনার হোম ডিরেক্টরিতে কোথাও রয়েছে:

find ~ -type f -name '*.mkv' -o -name '*.mp4' -o -name '*.wmv' -o -name '*.flv' -o -name '*.webm' -o -name '*.mov'

আপনি একটি রেজেক্সও ব্যবহার করতে পারেন:

find ~ -type f -regex '.*\.\(mkv\|mp4\|wmv\|flv\|webm\|mov\)'

আপনি কখন এটি ডাউনলোড করেছেন (এবং এই মুহুর্তে এমটাইম সেট করা হয়েছিল) ধরে নেওয়া আপনার যদি ভাল ধারণা থাকে তবে আপনি এটি জিএনইউ অনুসন্ধানের -mtimeবিকল্পটি সংকুচিত করার চেষ্টা করতে পারেন ।


1
আপনি কিছু প্রান্তিকের চেয়ে বড় আকারের সমস্ত ফাইলও প্রদর্শন করতে পারেন (ধরে নেওয়া ভিডিও ফাইলগুলি খুব বড়) ...
চককট্রিল

ক্রিস ডাউন, ফাইলের নাম ব্যবহারের সেই উপায়টি কাজ করবে না। আমি আমার প্রশ্নটি সম্পাদনা করেছি please দয়া করে একবার দেখুন
রবি

@ রাভি আমার আপডেট হওয়া উত্তরটি দেখুন, যা মাইমেটাইপ ব্যবহার করে।
ক্রিস ডাউন

আপনার প্রথম কমান্ডটি আরও অনেকগুলি (ভিডিও ব্যতীত) ফাইল আনছে। উদাহরণস্বরূপ, আউটপুট থেকে একটি লাইন হ'ল আউটপুট থেকে /home/ravbholua/Downloads/Music_Command_line/Any s_w to cut_add audio files, convert video to audio?_files/post_old.gif: image/gif; charset=binary অন্য লাইনটি: /home/ravbholua/Downloads/Music_Command_line/command line - how to start a video from the terminal? - Ask Ubuntu.html: text/html; charset=utf-8 এটি আমার উদ্দেশ্যটি সমাধান করছে না।
রবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.