जवाबों:
का उपयोग करें 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
खबरदार कि डिवाइस कॉलम में रिक्त स्थान हो सकते हैं (लेकिन यह दुर्लभ है), जिस स्थिति में पार्सिंग विफल हो जाएगी।
जीएनयू स्टेट कमांड के साथ एक सिस्टम पर (जैसा कि किसी भी मानक लिनक्स डिस्ट्रो के साथ बहुत अच्छा है), आप 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
विकल्प का उपयोग करते समय
-टी, --टार्गेट पथयदि पथ माउंटपॉइंट फ़ाइल या निर्देशिका नहीं है,
findmnt
तो माउंटपॉइंट प्राप्त करने के लिए रिवर्स ऑर्डर में पथ तत्वों की जांच करता है। अन्य दो विकल्प हेडर लाइन को दबाते हैं: -n, --noheading
और सूचीबद्ध होने के लिए कॉलम (एस) का चयन करें:-o, --output
df
से coreutils
एक समान विकल्प --output=
केवल कुछ क्षेत्रों को प्रिंट करने के लिए है, fstype
जैसे:
df --output=fstype /path/to/file
हालांकि हेडर को हटाने का कोई विकल्प नहीं है, इसलिए आपको आउटपुट को उदाहरण के लिए पाइप करना होगा | sed 1d
findmnt
उपकरण, यहां तक कि रेखा-ड्राइंग टीयूआई आउटपुट के साथ। धन्यवाद!