উত্তর:
ব্যবহার df
। আপনি এটিকে একটি পাথ পাস করতে পারেন এবং এটি আপনাকে সেই পাথের জন্য ফাইল সিস্টেমের তথ্য দেয়। আপনার যদি ফাইল সিস্টেমের ধরণের প্রয়োজন হয় তবে -T
স্যুইচটি ব্যবহার করুন :
$ df -T test
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda2 ext4 182634676 32337180 141020160 19% /home
ফাইল-সিস্টেমের প্রকারটি এক্সট্রাক্ট করার জন্য, আপনি এটি বিশ্লেষণ করতে পারেন ( ডিভাইসের অংশটি দীর্ঘ হলে লাইন ভাঙ্গা -P
এড়াতে স্যুইচটি ব্যবহার করুন df
):
$ df -PT test | awk 'NR==2 {print $2}'
ext4
সুতরাং আপনি if
যেমন একটি নির্মাণে যে মানটি ব্যবহার করতে পারেন :
if [ "$(df -PT "$path" | awk 'NR==2 {print $2}')" = "ext4" ] ; then
it is an ext4 filesystem
fi
সাবধান হন যে ডিভাইস কলামে ফাঁকা স্থান থাকতে পারে (তবে এটি বিরল), এই ক্ষেত্রে পার্সিং ব্যর্থ হবে।
GNU স্ট্যাট কমান্ড ইনস্টল করা সিস্টেমে (কোনও আদর্শ লিনাক্স ডিস্ট্রোর পাশাপাশি) আপনি stat
কমান্ডটি ব্যবহার করে কোনও পার্সিংয়ের প্রয়োজন ছাড়াই একটি প্রদত্ত ফাইলের জন্য fs টাইপ পেতে পারেন :
stat -f -c %T filename
-f
stat
ফাইলের পরিবর্তে ফাইল-সিস্টেম সম্পর্কে তথ্য সরবরাহ করতে বলে এবং -c %T
কেবল মানব-পঠনযোগ্য ফাইল সিস্টেম টাইপ ( %T
) অন্তর্ভুক্ত করতে আউটপুট ফর্ম্যাট সেট করে ।
সুতরাং আপনি এটি (ব্যাশে) হিসাবে ব্যবহার করতে পারেন:
if [[ $(stat -f -c %T filename) == ext4 ]]; then
# ext4 specific command
fi
man stat
আরও তথ্য সরবরাহ করবে।
সঙ্গে findmnt
(অংশ util-linux
):
findmnt -no fstype -T /path/to/file
বিকল্পটি ব্যবহার করার সময়
-T, --তারেটের পথযদি পাথটি কোনও মাউন্টপয়েন্ট ফাইল বা ডিরেক্টরি
findmnt
না হয় তবে মাউন্টপয়েন্টটি পেতে বিপরীত ক্রমে পাথ উপাদানগুলি পরীক্ষা করে। অন্যান্য দুটি বিকল্প শিরোনাম লাইনটি দমন করে: -n, --noheading
এবং তালিকাবদ্ধ করতে কলাম (গুলি) নির্বাচন করুন:-o, --output
df
থেকে কেবলমাত্র নির্দিষ্ট ক্ষেত্রগুলি মুদ্রণের coreutils
অনুরূপ বিকল্প --output=
রয়েছে fstype
যেমন:
df --output=fstype /path/to/file
যদিও শিরোলেখ অপসারণ করার কোনও বিকল্প নেই, সুতরাং আপনাকে আউটপুটটি উদাহরণস্বরূপ পাইপ করতে হবে | sed 1d
findmnt
লাইন-অঙ্কন TUI আউটপুট সহ এমনকি একটি সুন্দর সরঞ্জাম। ধন্যবাদ!