সবচেয়ে সহজ পদ্ধতির সংরক্ষণাগারের বিষয়বস্তু তালিকাভুক্ত করা এবং প্রাসঙ্গিক এক্সটেনশনের ফাইলগুলি অনুসন্ধান করা হবে। উদাহরণস্বরূপ, একটি zip
ফাইল সহ:
$ zip -sf foo.zip | grep -iE '\.png$|\.jpg$'
file1.jpg
file1.png
file2.jpg
file2.png
-sf
বিকল্প বলে zip
একটি সংরক্ষণাগার অন্তর্ভুক্ত ফাইল লিস্টে। তারপরে, লাইনটি ( ) এর শেষে বা grep
একটিতে সন্ধান করবে । বর্ধিত রেগুলার এক্সপ্রেশনের সম্ভব, তাই আমরা ব্যবহার করতে পারেন হিসাবে অথবা এবং.png
.jpg
$
-E
|
-i
ম্যাচিং ক্ষেত্রে অবশ করে তোলে।
তবে প্রতিটি সংরক্ষণাগার সরঞ্জামের বিষয়বস্তু তালিকাভুক্ত করার জন্য আলাদা কমান্ড রয়েছে। আমি এমন একটি স্ক্রিপ্ট লিখেছি যা বেশিরভাগ জনপ্রিয়ের সাথে কাজ করতে পারে। আপনি যদি সেই স্ক্রিপ্টটিকে সে হিসাবে সংরক্ষণ করেন list_compressed.sh
তবে চালাতে পারেন:
list_compressed.sh | grep -iE '\.png$|\.jpg$|\.jpeg$|\.gif$|\.tif$|\.tiff$'
এটি আপনাকে সর্বাধিক সাধারণ চিত্রের প্রকারগুলি দেখায়। নোট করুন যে এই পদ্ধতিটি ধরে নিয়েছে যে ফাইলের প্রকারটি ফাইলের প্রসার দ্বারা নির্ধারণ করা যেতে পারে। এটি এমন কোনও চিত্র ফাইলগুলি খুঁজে পাবে না যার এক্সটেনশন নেই এবং এটি ভুল এক্সটেনশন সহ ফাইলগুলি সনাক্ত করতে পারে না। সংরক্ষণাগার থেকে ফাইলগুলি না বের করে এবং সেগুলির file
প্রতিটিটিতে চালনা ছাড়া এটিকে মোকাবেলা করার কোনও উপায় নেই ।
আপনি যদি আপনার হার্ড ড্রাইভে ইমেজ ফাইলযুক্ত সমস্ত সংরক্ষণাগার সন্ধান করতে চান তবে উপরের সাথে একত্রিত করুন find
:
find / -name '*.gz' -o -name '*.tgz' -o -name '*.zip' -print0 |
while IFS= read -r -d '' arch; do
list_compressed.sh "$arch" |
grep -qiE '\.png$|\.jpg$|\.jpeg$|\.gif$|\.tif$|\.tiff$' &&
echo "$arch contains image(s)"
done
Find কমান্ডের সব অনুসন্ধান করবে .gz
, .tgz
বা .zip
ফাইল (হিসাবে আপনি চান আপনি অনেক এক্সটেনশন হিসাবে যোগ করতে পারেন), যারা তারপর আমার স্ক্রিপ্ট মাধ্যমে গৃহীত হয়। -q
অপ্রকাশিত, grep স্বাভাবিক আউটপুট আছে, কিছুই প্রিন্ট করা হবে। && echo
সংরক্ষণাগার নাম শুধুমাত্র যদি প্রিন্ট হবে grep
সফল হয়েছে।
foo
তবে তা নয়foo.png
।