ডিরেক্টরি কাঠামো বনাম ফাইল সিস্টেম


10

ডিরেক্টরি কাঠামো এবং ফাইল সিস্টেমের মধ্যে পার্থক্য কী ?
ইউনিক্স / লিনাক্স ডিরেক্টরি এবং ফাইল সিস্টেমটি নীচের মত দেখাচ্ছে:

নিম্নলিখিত দুটি ডিরেক্টরি স্পষ্টতই আমরা ডিরেক্টরি জানি।

  /home/abc/xyzdir1 --is a directory
  /home/abc/xyzdir2 -- is a directory

নিম্নলিখিত তিনটি নমুনা ফাইল সিস্টেম বলছে।

/proc -- is a file system
/ -- is a file system
/bin -- is a file system

উপরের কোড স্নিপেটগুলি থেকে কোনটি একটি ফাইল সিস্টেম এবং ডিরেক্টরি হিসাবে চিহ্নিত করতে পারি ?


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

@রোইমা দয়া করে নমুনার জন্য কোড স্নিপেট খুঁজুন
প্রেমরাজ

আপনার প্রশ্নটি এখনও অস্পষ্ট। /proc, /এবং /binডিরেক্টরি হয়। এগুলি "ফাইল সিস্টেম" নয়। আপনি সম্ভবত বোঝাতে চাইছেন যে কোন ডিরেক্টরিগুলি তাদের ফাইল সিস্টেমের মাউন্ট পয়েন্ট (মূল)?
রোয়াইমা

উত্তর:


8

লোকেরা খুব যত্ন সহকারে ফাইল সিস্টেম ব্যবহার করে না । আপনার উদাহরণ, আমি যে বলতে হবে /, /binএবং /procকারণ (যেমন একটি সম্পূর্ণ পার্টিশন ফাইল সিস্টেম /dev/sdb1) আর ডিরেক্টরি উপরে মাউন্ট করা হয়। আমার আর্চ লিনাক্স সিস্টেমে কোনও /binফাইল সিস্টেম নেই তাই এই উদাহরণটি নিখুঁত নয় তবে ...

% ls -lid /proc /home /boot /
2 drwxr-xr-x  17 root root 4096 Feb 24 12:12 //
2 drwxr-xr-x   4 root root 4096 May 16 14:29 /boot/
2 drwxr-xr-x   5 root root 4096 Mar 14 18:11 /home/
1 dr-xr-xr-x 116 root root    0 May 16 17:18 /proc/

ইনোড নম্বর 2 হ'ল onতিহ্যগতভাবে একটি সম্পূর্ণ অন ডিস্ক ফাইল সিস্টেমের "রুট" ইনোড (যা বাক্যাংশের অন্যান্য ব্যবহার)। /, /bootএবং /homeসকলের ইনোড নম্বর 2 রয়েছে, যখন /proc, যা সম্পূর্ণ কার্নেল দ্বারা উপস্থাপিত হয় এবং ডিস্কের উপস্থিতি নেই, এর ইনোড 1 থাকে Those এই ইনোড সংখ্যাগুলি নির্দেশ করে যে একটি সম্পূর্ণ, অন ডিস্ক ফাইল সিস্টেম বা ভার্চুয়াল ফাইল সিস্টেম এই নামটি ব্যবহার করে মাউন্ট করা হয়।

বাক্যটি /home/abc/xyzdir1একটি ডিরেক্টরি "মূলত এর অর্থ হ'ল সেই নামটি ব্যবহার করে কোনও ডিস্ক ফাইল সিস্টেম মাউন্ট করা হয় না ls -lida আপনি যদি ডিরেক্টরিতে একই কমান্ডটি করেন তবে আপনি এই জাতীয় কিছু পাবেন:

 % ls -lid /home/bediger/src
3670039 drwxr-xr-x 29 bediger bediger 4096 May 17 19:57 /home/bediger/src/

ইনড নম্বর 3670039 ঠিক তেমন কিছু যা ইনোড থেকে অনিক ডিস্ক ফাইল সিস্টেমে মাউন্ট করা হয়েছিল (আমার মেশিনে) /home

mountকমান্ডটি ব্যবহার করে আপনি ফাইল সিস্টেমগুলিও খুঁজে পেতে পারেন । এটি সমস্ত মাউন্ট করা ফাইল সিস্টেমের তালিকা এবং যেখানে সেগুলি মাউন্ট করা হয়েছে।


"ম্যাজিক ইনোড" নম্বর ফাইল সিস্টেমগুলির এক্সট 2 সিরিজের সাথে সুনির্দিষ্ট। এটি xfs বা btrfs এর মতো বেশিরভাগ (সমস্ত?) অন্যান্য ক্ষেত্রে প্রযোজ্য নয়।
psusi

আমি এটি বলব /, /binএবং /procফাইল সিস্টেম কারণ একটি সম্পূর্ণ পার্টিশন ... সেই ডিরেক্টরিগুলিতে মাউন্ট করা আছে। /procউত্তরটি পরে যা বোঝায়, এটি এর জন্য সত্য নয় ।
সর্বাধিক ন্যানসি

1
@ ম্যাক্সনানসি - প্রদত্ত যে "ফাইল সিস্টেম" এর দুটি অর্থ প্রচলিত রয়েছে (১. গাছের কাঠামোর ডিরেক্টরিগুলির নাম এবং বিন্যাস এবং ২. অন-ডিস্ক ফর্ম্যাট এবং ফাইল এবং ডিরেক্টরি কাঠামোগত ডেটার বিন্যাস, পাশাপাশি কোডটি বজায় রাখতে এবং ব্যবহার করার জন্য), এমন একটি শব্দটি প্রকাশ করা খুব শক্ত যে এটি উভয় বোধগম্য, একটি বিজ্ঞপ্তি ফ্যাশনে সংজ্ঞায়িত নয় এবং প্রযুক্তিগতভাবে সঠিক। আমি অন্যান্য পদগুলির পরিবর্তে বোধগম্য এবং "বিভাজন" ব্যবহার করে যেতে বেছে নিয়েছি। আমি আপনাকে এমন শব্দ (টি) প্রস্তাব দেওয়ার জন্য আমন্ত্রণ জানাচ্ছি যা আরও সঠিক, আমি ক্ষতিতে আছি।
ব্রুস এডিগার

4

গুরুতর ওভারসিম্লিফাইটিংয়ের ঝুঁকিতে,

  • একটি ফাইল সিস্টেম আপনার গাড়ির ইঞ্জিন এবং অন্যান্য অভ্যন্তরীণ সিস্টেমগুলির মতো,
  • একটি ডিরেক্টরি কাঠামো যেখানে আপনি গাড়ি চালান সেই জায়গাগুলির মানচিত্রের মতো।

যেহেতু আমাকে একটি এনকোয়ারের জন্য বলা হয়েছে,

  • ফাইল সিস্টেমগুলি অডিও / ভিডিও সংকেত বিতরণ / প্রচারের যান্ত্রিকগুলির (বাস্তবায়নের বিশদ) এর মতো: এনালগ আরএফ সম্প্রচার, ডিজিটাল আরএফ সম্প্রচার, কেবল, ইন্টারনেট, ভিডিও টেপ, ভিডিও ডিস্ক ইত্যাদি etc.
  • ডিরেক্টরি কাঠামোটি টেলিভিশন প্রোগ্রামিংয়ের সামগ্রীর মতো এবং এর শ্রেণিবিন্যাস যেমন কৌতুক, নাটক, সংবাদ, ডকুমেন্টারি, গেমস শো, ক্রীড়া ইত্যাদি sports

আপনি যদি কোড চান তবে এই উত্তরটির প্রথমার্ধটি দেখুন কীভাবে এটি নির্ধারণ করতে হবে যে লিনাক্স ফাইল সিস্টেমটি কোনও চলমান সিস্টেমের অন্তর্গত কিনা - সেই অংশ যা বৈধতা যাচাই করে root_dir। এটি কেবল ব্রুস যা বলেছিল তা করছে; এটি ডিরেক্টরি কিনা তা যাচাই করা এবং এর ইনোড নম্বরটি 1 বা 2 কিনা তা যাচাই করা হচ্ছে।


1
ভাল ই এলআই 5, তবে আপনি উত্তর দিয়ে একটি কোড স্নিপেট যুক্ত করতে পারলেন কোনটি ফাইল সিস্টেম এবং ডিরেক্টরি যা আমি সনাক্ত করব?
ব্যবহারকারী 1717828

4

আমি যেভাবে দেখছি, একটি ফাইল সিস্টেম, ইউনিক্স অর্থে, ডিরেক্টরি গাছ (ডিরেক্টরি কাঠামো) বাস্তবায়ন করার উপায় বা আরও স্পষ্টভাবে, ইউনিক্স ফাইল সিস্টেম এপিআই বাস্তবায়নের একটি উপায়। রুট ফাইল সিস্টেমটি একটি নির্দিষ্ট প্রয়োগ দ্বারা সমর্থিত হয় এবং আপনি যখনই একটি মাউন্টপয়েন্ট ডিরেক্টরিতে প্রবেশ করেন, আপনি একটি সাবট্রি প্রবেশ করুন যা ভিন্ন কিছু দ্বারা সমর্থনযুক্ত।

ইন্টারফেসটি সর্বদা একই থাকে, তবে একটি ক্ষেত্রে আপনার শেষ প্রান্তে একটি নির্দিষ্ট ডিস্ক পার্টিশন রয়েছে, অন্য ক্ষেত্রে, এমন একটি প্রোগ্রাম থাকবে যা এমনকি কোনও স্টোরেজ ডিভাইসে কখনও লেখেনি। procফাইলসিস্টেম সফটওয়্যার যা প্রকাশ কার্নেল অভ্যন্তরীণ সমর্থন হবে; একটি tmpfsসফটওয়্যার দ্বারা ব্যাক আপ করা হবে যা র‌্যামে লিখেছে, এবং অন্যান্য ফাইল সিস্টেমগুলি নেটওয়ার্কে বা অন্য কোথাও লিখতে পারে।

শব্দের অ-ইউনিক্স অর্থে কোনও ফাইল সিস্টেম ডেটা স্টোরেজ সংগঠিত করার একটি উপায়। ext4, btrfs, fat, এবং ntfsএই অর্থে ফাইল সিস্টেম, কিন্তু আছে UNIXy ইন্দ্রিয়-তারা FileSystem API বাস্তবায়ন। procএর মধ্যে একটি ফাইল সিস্টেম হিসাবে শ্রেণিবদ্ধ করা হবে না, আরও সীমাবদ্ধ, দৃষ্টান্ত কারণ এটি ডেটা স্টোরেজ সংগঠিত করে না।

টি এল; ডিআর:

  • ডিরেক্টরি কাঠামো / গাছ = সামনের প্রান্ত
  • ফাইল সিস্টেম = শেষ প্রান্ত

2

ফাইল সিস্টেমের বিষয়ে কথা বলার সময় ডিরেক্টরি গ্রহণটি দ্ব্যর্থহীন, আপনি কী বলছেন তার উপর নির্ভর করে ফাইল সিস্টেমের অর্থ বিভিন্ন জিনিস হতে পারে।

আপনার উদাহরণগুলিতে, সমস্ত তালিকাভুক্ত পাথ ডিরেক্টরিগুলি তবে সেগুলির মধ্যে কয়েকটি ফাইল সিস্টেমের মাউন্ট পয়েন্ট।

আপনি ব্যবহার করতে পারেন dfকি ফাইল সিস্টেম একটি প্রদত্ত ফাইল অথবা ডাইরেক্টরি উপর পরিচিত কমান্ড, এবং mountচিত্রে সবচেয়ে ইউনিক্স এবং Linux বাস্তবায়নের উপর কমান্ড আউট কি ফাইল সিস্টেম আপনার মেশিনে তাদের ধরন ও তাদের পয়েন্ট মাউন্ট উপস্থিত হয়। উদাহরণ:

$ df /proc
Filesystem     1K-blocks  Used Available Use% Mounted on
proc                   0     0         0    - /proc
$ mount | grep -w /proc
/proc is a file system of type proc

বিবৃতিটি /binএকটি ফাইল সিস্টেম সন্দেহজনক, /binপ্রায় সর্বদা মাউন্ট হয় /

$ df -k /bin
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      206292664 180687360  15103212  93% /
$ mount | grep -w /
/dev/sda5 on / type ext4 (rw,errors=remount-ro)

1

প্রথমে একটি ফাইল সিস্টেম এবং ডিরেক্টরি সম্পর্কে আপনার অনুমানের সংশোধন করুন। একটি ফাইল সিস্টেমে এক বা একাধিক ডিরেক্টরি রয়েছে। আপনার উদাহরণগুলি ব্যবহার করে /proc, /এবং /binডিরেক্টরিগুলি। এগুলি এবং তাদের নিজের মধ্যে "ফাইল সিস্টেম" নয়, তবে তারা তাদের নিজ নিজ ফাইল সিস্টেমের মূল হতে পারে।

যদি আপনি সনাক্ত করতে চান যে কোন ডিরেক্টরিগুলি তাদের ফাইল সিস্টেমের মাউন্ট পয়েন্ট (মূল) হয় আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

F="$PWD"    # The directory to be tested
if test -d "$F"
then
    echo "$F is a directory"
    test "X$(stat --format '%m' "$F")" = "X$PWD" && echo "$F is a mountpoint"
fi

1

ফাইল সিস্টেম হ'ল লজিক্যালি প্রচুর পরিমাণে ডেটা সংগঠিত এবং সংরক্ষণের জন্য পদ্ধতি যা সিস্টেম পরিচালনা করা সহজ। একটি ফাইল সিস্টেম প্রতিটি ফাইলের ফাইল, অন্যান্য ফাইলের সাথে সম্পর্ক, পাশাপাশি বৈশিষ্ট্যগুলি (ফাইলের ধরণ, ফাইলের নাম, ফাইলের আকার, ফাইলের মালিক, ফাইল টাইমস্ট্যাম্প) নিয়ে গঠিত।

ডিরেক্টরিগুলি : উদাহরণস্বরূপ, ইউনিক্স ফাইল সিস্টেমটি মূলত ফাইল এবং ডিরেক্টরিগুলির সমন্বয়ে গঠিত। ডিরেক্টরিগুলি হ'ল বিশেষ ফাইল যা অন্যান্য ফাইল থাকতে পারে। সর্বাধিক সর্বাধিক ডিরেক্টরি হ'ল /(স্ল্যাশ), সিস্টেম ডিরেক্টরিগুলির নীচে সরাসরি ডিরেক্টরিগুলি। এখানে চিত্র বর্ণনা লিখুন

/ লিনাক্স ফাইল সিস্টেমের মূল

/bin বাইনারি এক্সিকিউটেবল ফাইলগুলি এখানে রাখা হয়

/boot বুট সম্পর্কিত সম্পর্কিত ফাইলগুলি এখানে রাখা আছে

/dev ডিভাইস ফাইলগুলি এখানে রাখা হয়েছে

/etc সিস্টেম-প্রশস্ত কনফিগারেশন ফাইলগুলি এখানে রাখা আছে

/home নিয়মিত ব্যবহারকারীদের হোম ডিরেক্টরিগুলির জন্য অবস্থান

/lib64 বাইনারি এক্সিকিউটেবলের জন্য গ্রন্থাগারগুলি এখানে রাখা আছে

/mnt ডিভিডি-রোমের জন্য অস্থায়ী মাউন্ট পয়েন্ট, ইউএসবি ফ্ল্যাশ ড্রাইভ।

/optউইন্ডোতে প্রোগ্রাম ফাইলগুলির মতো এখানে hereচ্ছিক প্রোগ্রামগুলি ইনস্টল করা আছে

/proc কার্নেল সিউডো ফাইল সিস্টেম

/root সুপার ব্যবহারকারী রুটের হোম ডিরেক্টরি

/sbin সিস্টেম বাইনারি এক্সিকিউটেবল ফাইলগুলি এখানে রাখা হয়

/tmp অস্থায়ী ফাইল এখানে রাখা হয়

/usr ব্যবহারকারী ফাইল সিস্টেম m

/var পরিবর্তনশীল ফাইলগুলি এখানে রাখা হয়

/srv এটি একটি পরিবেশন ফোল্ডার, এতে সাইট-নির্দিষ্ট ডেটা থাকে যা এই সিস্টেম দ্বারা পরিবেশন করা হয়।

src এবং আরও জন্য

নিম্নলিখিত দুটি ডিরেক্টরি ব্যবহারকারীর সংজ্ঞায়িত ডিরেক্টরি:

 /home/abc/xyzdir1 --is a directory
 /home/abc/xyzdir2 -- is a directory

এই চিত্রটি খুব খারাপভাবে পুরানো। এফএইচএস 3.0 জুন ২০১৫ এ প্রকাশিত হয়েছিল। এও লক্ষ্য করা উচিত যে এফএইচএস কেবল লিনাক্স বিতরণে প্রযোজ্য।
এফএমপুরফি

1

আপনার যদি কেবল একটি কমান্ডের দরকার হয় যা আপনাকে জানিয়ে দেয় যে পথটি একটি ডিরেক্টরি বা মাউন্টপয়েন্ট (1) না ব্যবহার করে ।

আমার জন্য এটি মুদ্রণ

$ mountpoint /
/ is a mountpoint
$ mountpoint /bin
/bin is not a mountpoint
$ mountpoint some-file
some-file is not a mountpoint

ভাল জিনিস হ'ল প্রস্থান স্থিতি আবার একই নির্দেশ করে যাতে আপনি এটি আপনার স্ক্রিপ্টগুলিতে এটি ব্যবহার করতে পারেন:

if mountpoint "$foo" >/dev/null; then
  : do mountpoint stuff
elif [ -d "$foo" ]; then
  : do directory stuff
elif [ -e "$foo" ]; then
  : do file stuff 
else
  echo "$foo does not exist!" >/2
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.