ডিরেক্টরিতে (s ls -U What দ্বারা ব্যবহৃত) ফাইলগুলির "ডিরেক্টরি আদেশ" কী?


19

ম্যান পেজ অনুসারে এলএস এর ls -Uঅর্থ:

বাছাই না; ডিরেক্টরি ক্রমে এন্ট্রি তালিকা।

"ডিরেক্টরি আদেশ" এর অর্থ কী এবং এটি কীভাবে নির্ধারিত হয়?

নিম্নলিখিত পরীক্ষা (একটি ext3 ফাইল সিস্টেমে চালিত), দেখায় যে এটি ফাইলগুলি যেভাবে তৈরি করা হয়েছিল তা নয়:

root@sv1010vm0007:/tmp# mkdir test
root@sv1010vm0007:/tmp# touch test/2
root@sv1010vm0007:/tmp# touch test/1
root@sv1010vm0007:/tmp# touch test/3
root@sv1010vm0007:/tmp# ls -U test
2  3  1

উত্তর:


14

এটি ফাইল সিস্টেমের উপর নির্ভর করে। কিছু ফাইল সিস্টেমের জন্য (তাদের মধ্যে এক্সট্রি 3) একটি ডিরেক্টরি আসলে একটি সুপরিচিত ফর্ম্যাট সহ একটি ফাইল এবং এর অনুমতি বা মোডে 'ডি' বিট সেট করে। সেক্ষেত্রে ফাইলের নামগুলি কী দৈর্ঘ্যের ফাইলগুলি তৈরি এবং মুছে ফেলেছে তার ইতিহাস গুরুত্বপূর্ণ matter কার্নেলটি ডিরেক্টরি ফাইলটিতে প্রথম এন্ট্রি পূরণ করবে যাতে নতুন ফাইলটির নাম ধারণ করার জন্য পর্যাপ্ত জায়গা রয়েছে। আরও তথ্যের জন্য http://e2fsprogs.sourceforge.net/ext2intro.html দেখুন "শারীরিক বিবরণ" শীর্ষক বিভাগটি।

কিছু অন্যান্য ফাইল সিস্টেমের মধ্যে, তাদের মধ্যে রিসফার্ফদের জন্য একটি ডিরেক্টরি আসলে একটি বি + ট্রি-তে কেবল কিছু প্রবেশিকা যা ফাইল সিস্টেমে দৃশ্যমান নয়, সুতরাং lsএকটি রিসফার্স ফাইল সিস্টেমের ডিরেক্টরিগুলির একটি প্লেইন লেক্সিকাল ক্রমে।


@ ব্রুস: সুতরাং, এই "ডিরেক্টরি" ফাইলের বিষয়বস্তু ঠিক কী?
ফাহিম মিঠা

Ditionতিহ্যগতভাবে, স্ট্রাক্ট ডাইরেন্টের মতো খুব বেশি কিছু, যা আমি একটি আরএইচইএল বাক্সে এবং / স্ল্যাকওয়্যার ১১.০ বাক্সে /usr/incolve/bit/dirent.h এ সংজ্ঞায়িত পাই। এই দুটি মেশিনই সরাসরি () সরাসরি ডিরেক্টরি খুলতে অস্বীকার করে। আমি জানি যে আমি "বিড়াল।> Dot.as.file" এর মতো একটি ডিরেক্টরি একটি নিয়মিত ফাইলে রূপান্তর করতে ব্যবহার করতাম, শেষ বার যখন নিশ্চিতভাবে এটি করেছি সোলারিস 8, আমার মনে হয়। মূলত, স্ট্রাক্ট ডাইরেন্টে একটি ইনোড (একটি সংখ্যা), একটি রেকর্ড দৈর্ঘ্য, একটি নাম দৈর্ঘ্য এবং একটি স্ট্রিং থাকে, যা আমি স্মরণ করি, এএসসিআইআই-নুলকে সমাপ্ত হতে পারে বা নাও করতে পারে।
ব্রুস এডিগার

@ ব্রুস: ঠিক আছে। এবং এই সি স্ট্রাক্টের মধ্যে fields ক্ষেত্রগুলির মধ্যে থাকা ফাইল এবং উপ-ডিরেক্টরিগুলির সমস্ত তথ্য পাওয়ার ব্যবস্থা আছে?
ফাহিম মিঠা

Ext2, বা BSD FFS বা মূল ইউনিক্স ফাইল সিস্টেমের মতো ফাইল সিস্টেমে একটি ডিরেক্টরিতে কেবল ইনড নম্বর এবং সংশ্লিষ্ট ফাইলের নামের তালিকা রয়েছে। যুক্তি ছাড়াই "এলএস" চালনা করা আপনাকে কেবল ফাইল নামের একটি তালিকা অর্জন করেছে। আপনি যদি "ls -l" করেন তবে "ls" নিজেই ফাইলের নামের উপর স্ট্যাট (2) সিস্টেম কল করে প্রতিটি ফাইলের নাম সন্ধান করতে পারে এবং স্ট্রাক্ট স্ট্যাটাস থেকে অনুমতি, আকার, "ফাইলের টাইপ" ইত্যাদি পেয়ে থাকে সুতরাং, না, একটি ডিরেক্টরি ফাইলের সমস্ত তথ্য নেই, কেবলমাত্র নামের একটি তালিকা।
ব্রুস এডিগার

2
ext2.sourceforge.net/2005-ols/paper-html/node3.html ব্যাখ্যা করে যে dir_index বৈশিষ্ট্যটি ফাইলের নাম এবং একটি ফাইল-সিস্টেম-নির্দিষ্ট গোপনীয় করে। বৈশিষ্ট্যটি সক্ষম করা থাকলে ডাম্পএফগুলি তার ফাইল সিস্টেম বৈশিষ্ট্যগুলি লাইনে dir_index অন্তর্ভুক্ত করে।
মার্টিন ডরে

3

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


কার্নেল এবং ফাইল সিস্টেম ড্রাইভারগুলিতে সময়সূচী / ক্যাশিং অ্যালগরিদম রয়েছে যা সঠিকভাবে ডিস্কে ডেটা লেখার সময় প্রভাবিত করে। কর্মক্ষমতা বাড়াতে এটি করা হয়। এই অপ্টিমাইজেশনের কারণে আপনি লেখাগুলি কখন ঘটবে তা সত্যই বলতে পারবেন না। এছাড়াও, ফাইল সিস্টেমে পুরানো আইनोডগুলি পুনরায় ব্যবহার করা যেতে পারে যাতে নতুন ফাইলগুলি যেখানে পুরানো ফাইলগুলি ছিল সেই ডিরেক্টরি স্লটে উপস্থিত হতে পারে। সুতরাং সৃষ্টির ক্রম প্রয়োজনীয় নয় "ডিরেক্টরি আদেশ"।
LawrenceC

@ আলট্রাসাওব্লেড: আপনি নিজের উত্তর বা পরিবর্তে যে কোনও উত্তর দেওয়ার পরিবর্তে আমার নিজের মন্তব্যে মন্তব্য হিসাবে কেন লিখেছেন তা নিশ্চিত নন।
jlliagre

@ মাল্টাসাওব্লেড: কড়া কথায় বলতে গেলে, "পুরাতন ইনোডগুলি [পুনরায় ব্যবহৃত হচ্ছে"] এর সাথে পুরানো ডিরেক্টরি স্লটগুলির পুনরায় ব্যবহারের কোনও সম্পর্ক নেই। পুরানো ডিরেক্টরি এন্ট্রি লিঙ্কযুক্ত যখনই এটি ঘটতে পারে; যদি সেগুলি সমস্ত শক্ত লিঙ্ক হয় তবে এর ফলস্বরূপ ইনোডগুলি হ্রাস পাবে না।
জি-ম্যান বলছেন 'মনিকাকে পুনরায় ইনস্টল করুন'

2

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


-1

ডিরেক্টরি হ'ল অন্য একটি ফাইল যা প্রকৃত ফাইলের মেটাডেটা তালিকাভুক্ত করে। "ls -U" কেবল ডিরেক্টরি ফাইলে একই ক্রমে তালিকাভুক্তদের তালিকাভুক্ত করে।

ওএস এবং ফাইল সিস্টেমের প্রয়োগের মাধ্যমে অর্ডার নির্ধারিত হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.