আপনি কল করতে পারেন এমন কোনও স্ক্রিপ্ট লিখতে পারেন file
এবং আপনার আগ্রহী মামলাগুলি যাচাই করতে কেস-স্টেটমেন্ট ব্যবহার করতে পারেন।
উদাহরণ স্বরূপ
#!/bin/sh
case $(file "$1") in
(*script*|*\ text|*\ text\ *)
echo text
;;
(*)
echo binary
;;
esac
যদিও অবশ্যই অনেকগুলি বিশেষ মামলা হতে পারে যা আগ্রহী। কেবলমাত্র strings
একটি অনুলিপি পরীক্ষা করে libmagic
দেখছি, আমি প্রায় 200 টি মামলা দেখতে পাচ্ছি, যেমন,
Konqueror cookie text
Korn shell script text executable
LaTeX 2e document text
LaTeX document text
Linux Software Map entry text
Linux Software Map entry text (new format)
Linux kernel symbol map text
Lisp/Scheme program text
Lua script text executable
LyX document text
M3U playlist text
M4 macro processor script text
কেউ কেউ স্ট্রিংকে "টেক্সট" বিভিন্ন ধরণের অংশ হিসাবে ব্যবহার করে, যেমন,
SoftQuad troff Context intermediate
SoftQuad troff Context intermediate for AT&T 495 laser printer
SoftQuad troff Context intermediate for HP LaserJet
একইভাবে script
একটি শব্দের অংশ হতে পারে, তবে আমি এই ক্ষেত্রে কোনও সমস্যা দেখছি না। তবে কোনও স্ক্রিপ্টের জন্য শব্দ"text"
হিসাবে অনুসন্ধান করা উচিত , সাবস্ট্রিং নয় ।
অনুস্মারক হিসাবে, file
আউটপুট একটি সুনির্দিষ্ট বিবরণ ব্যবহার করে না যা সর্বদা "স্ক্রিপ্ট" বা "পাঠ্য" থাকবে। বিশেষ বিষয়গুলি বিবেচনা করার মতো বিষয়। একটি ফলোআপ মন্তব্য করেছে যে ফাইলগুলির --mime-type
জন্য এই পদ্ধতিটি কাজ করবে না .svg
। তবে, একটি পরীক্ষায় আমি এই ফলাফলগুলি এসভিজি-ফাইলগুলির জন্য দেখতে পাই:
$ ls -l *.svg
-r--r--r-- 1 tom users 6679 Jul 26 2012 pumpkin_48x48.svg
-r--r--r-- 1 tom users 17372 Jul 30 2012 sink_48x48.svg
-r--r--r-- 1 tom users 5929 Jul 25 2012 vile_48x48.svg
-r--r--r-- 1 tom users 3553 Jul 28 2012 vile-mini.svg
$ file *.svg
pumpkin_48x48.svg: SVG Scalable Vector Graphics image
sink_48x48.svg: SVG Scalable Vector Graphics image
vile-mini.svg: SVG Scalable Vector Graphics image
vile_48x48.svg: SVG Scalable Vector Graphics image
$ file --mime-type *.svg
pumpkin_48x48.svg: image/svg+xml
sink_48x48.svg: image/svg+xml
vile-mini.svg: image/svg+xml
vile_48x48.svg: image/svg+xml
যা আমি বেছে নিয়েছি এমন এক হাজার ফাইল দেখার পরে মাইম-টাইপ আউটপুটটিতে "পাঠ্য" দিয়ে কেবল 6 টি প্রদর্শিত হয়। তর্কসাপেক্ষ, মাইম-টাইপ আউটপুট প্রান্তে "XML" মিলে আরো উপযোগী হতে পারে, ম্যাচিং "করা SVG" পরিবর্তে, বলে, কিন্তু একটি স্ক্রিপ্ট ব্যবহার করে না যে তুমি ফিরে লাগে পরামর্শ এখানে তৈরি।
আউটপুটটির জন্য file
উভয় দৃশ্যে কিছু টিউনিং প্রয়োজন, এবং এটি 100% নির্ভরযোগ্য নয় (এটি আমার পার্ল স্ক্রিপ্টগুলির বেশ কয়েকটি দ্বারা বিভ্রান্ত হয়ে তাদের "ডেটা" বলে ডাকে)।
এর একাধিক বাস্তবায়ন রয়েছে file
। সর্বাধিক ব্যবহৃত এক এটির কাজ করে libmagic
যা বিভিন্ন প্রোগ্রাম থেকে ব্যবহার করা যেতে পারে (সম্ভবত সরাসরি হতে পারে না zsh
, যদিও python
পারে)।
শেল, পার্ল, রুবি এবং পাইথনের ফাইল পরীক্ষার তুলনা সারণী অনুসারে পার্লের একটি -T
বিকল্প রয়েছে যা এটি এই তথ্য সরবরাহ করতে ব্যবহার করতে পারে। তবে এটি কোনও তুলনামূলক বৈশিষ্ট্য তালিকাভুক্ত করে না zsh
।
আরও পড়া:
file
এটি একটি স্ট্যান্ডার্ড ইউটিলিটি এবং এটির সর্বোচ্চ ক্ষমতার জন্য ফাইলের ধরন নির্ধারণের জন্য ফাইল ম্যাজিকের মাধ্যমে চলতে পারে। এটি বেশিরভাগ পাঠ্য বিন্যাসগুলি বলতে পারে এবং বাইনারি ফর্ম্যাটগুলিতে বেশ সুন্দর কাজ করে। আপনি যা করার চেষ্টা করছেন তা যদি কোনও ফাইল পাঠ্য হয় কি না তা যদি খুঁজে বের করা হয় তবে আপনার সেই কমান্ডটি আগ্রহী