আমি আমার বর্তমান ওয়ার্কিং ডিরেক্টরিটির fs ধরণ কীভাবে নির্ধারণ করতে পারি?


19

আমার CWD এর মাউন্ট প্রকারটি সনাক্ত করার জন্য আমার প্ল্যাটফর্ম-স্বতন্ত্র এবং হালকা ওজনের উপায় প্রয়োজন need বিশেষত, আমার সিডব্লিউডি কোনও এসএসএইচএফএস, এনএফএস, সিআইএফএস, এসএমবি, বা স্থানীয় ব্লক স্টোর মাউন্টে রয়েছে কিনা তা নির্ধারণ করতে হবে।

আমাকে ম্যাক ওএসএক্স 10.6, 10.7 এবং আরএইচইল 5 (সর্বনিম্ন) এ এটি করা দরকার।

ডিএফ ব্যবহারের সম্ভাবনা রয়েছে, তবে ডিএফ এই দুটি প্ল্যাটফর্মে বেশ আলাদা আচরণ করে। এছাড়াও, আমাকে সিএলআই এর আউটপুটটিকে অ্যাজকের সাথে স্ক্র্যাপ করতে হবে, যা কার্যক্ষম যখন ... ভঙ্গুর।

এই তথ্যটি অবশ্যই কিছু স্তরে উপলব্ধ থাকতে হবে। এমন কোনও সরঞ্জাম আছে যা সম্পর্কে আমি অজানা তা আমাকে এই তথ্য সরবরাহ করতে পারে?

উত্তর:


17

ফাইল-সিস্টেমের ধরণ এমন কোনও জিনিস নয় যা আপনি খুব সহজেই একটি ওএস-স্বাধীন উপায়ে অ্যাক্সেস করতে পারেন। ফাইল সিস্টেমে টাইপের নামগুলি ওএস-নির্ভর, তাই কোনও মানক পদ্ধতি স্থাপনের জন্য কোনও উত্সাহ দেওয়া হয়নি।

এম্বেড থাকা লিনাক্স সিস্টেমে stat -f -c %T .বর্তমান ডিরেক্টরিগুলির ফাইল সিস্টেম প্রকার দেখায়। ওএসএক্সের statকমান্ডের মতো কিছুই নেই।

যেহেতু আপনি যে সমস্ত তথ্য জানতে চান তা হ'ল লিনাক্সের অধীনে ফাইল সিস্টেম প্রকারটি সীমাবদ্ধ তালিকায় রয়েছে কিনা, আপনি প্রিন্টের জন্য পাথের সেটগুলি এবং ফাইল সিস্টেমের ধরণের সেটকে উভয়ই সীমাবদ্ধ করতে পারেন। যদি বর্তমান ডিরেক্টরিটির ফাইল সিস্টেম ধরণের তালিকায় না থাকে তবে আপনি একটি ত্রুটি পাবেন ("df: কোনও ফাইল সিস্টেম প্রক্রিয়াজাত নয়")।

if df -t sshfs -t nfs -t cifs . >/dev/null 2>/dev/null; then …

একই সিনট্যাক্স ওএসএক্সে কাজ করতে পারে বা নাও করতে পারে; যদি এটি না হয়, চেষ্টা করুন df -T sshfs,nfs,cifs .


আমার ঠিক এটিই দরকার ছিল। গিলস আপনি দুর্দান্ত!
এআরএক্স

7

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

stat --file-system --format=%T /tmp/subdir/whatever
tmpfs

এটি দুর্দান্ত কারণ এটি উপ-ডিরেক্টরিতে কাজ করে। ধন্যবাদ!
অবিন্দর গলচরণ

4

লিনাক্স-এ ইউজ-লিনাক্স ২.১18-এর পরে সন্ধান পাওয়া যায়।

findmnt -n -o FSTYPE -T /home
nfs4

/ হোম / সাবডিরের জন্য কাজ করে না, সুতরাং এটি ওপিকে সহায়তা করবে না।
এলফ

আমার জন্য এটি সাবডিয়ারদের জন্যও ব্যবহার করে, ইউজার-লিনাক্স 2.23 থেকে ফাইন্ডমাউন্ট ব্যবহার করে।
rudimeier

3

এটি পরীক্ষা করা হয়নি, তবে df -Pবেশিরভাগ প্ল্যাটফর্মে একই আচরণ করা উচিত।

এটি লিনাক্সে কাজ করে।

$ mount | grep "^$(df -Pk . | head -n 2 | tail -n 1 | cut -f 1 -d ' ') " | cut -f 5 -d ' '

বা এটিকে পুনরায় ব্যবহারযোগ্য ফাংশনে বিভক্ত করা:

# get_mount <directory>
get_mount() {
    df -Pk "$1" | head -n 2 | tail -n 1 | cut -f 1 -d ' '
}

# get_fs <mountpoint>
get_fs() {
    mount | grep "^$1 " | cut -f 5 -d ' '
}

এবং ফাংশন কল:

get_fs $(get_mount .)

ব্যবহার করে কিছুটা দ্রুত হতে পুনরায় লেখা যেতে পারে sedবা awk, তবে সম্ভবত এইভাবে পড়া সহজ।

যদি এটি কাজ না করে, আপনি অনুরূপ কিছু চেষ্টা করতে পারেন, তবে /etc/mtabএর ফলাফলের চেয়ে ব্যবহার করে mount


Pমধ্যে df -P, POSIX জন্য তাই এটি একই ভাবে আচরণ করা উচিত নয়। যাইহোক, ফাইল-সিস্টেমের পথ থেকে মাউন্ট পয়েন্টে পৌঁছনো আরও স্পষ্টভাবে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

1
ডিরেক্টরিটি লো-লুপের সাথে মাউন্ট করা থাকলে আপনার সমাধানটি নিরাপদ বলে মনে হচ্ছে না। কমপক্ষে আমার সিস্টেমে ডিএফ-এ ব্যবহৃত লুপ ডিভাইস দেখায় তবে মাউন্ট ব্যবহৃত চিত্রের ফাইলটি দেখায়। আমি অনুমান করি যে আরও অনেকগুলি ক্ষেত্রেও ঘটতে পারে যেখানে ডিএফ মাউন্টের মতো একই ডিভাইসটি দেখায় না। মাউন্টের ম্যান পৃষ্ঠা থেকে এই উদ্ধৃতিটি নোট করুন "তালিকাটি মোড কেবল পশ্চাদপদ সামঞ্জস্যের জন্য বজায় রাখা হয় more
রুডিমায়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.