সিডি .. রুট ফোল্ডারে


44

কেন cd .., রুট ফোল্ডারে টাইপ করা, কোনও ত্রুটি সহ সতর্কতা দেয় বা ব্যর্থ হয় না?

আমি আশা করব:

/$ cd ..
-bash: cd: ..: No such file or directory

পরিবর্তে, আমি এ বাকি আছি /। অবশ্যই, এই যেহেতু হয় ..মধ্যে কোন অস্তিত্ব নেই /, আর সহজভাবে হয় /, ঠিক .। আমি শুধু ভাবছি কেন এটি এমন হয়।


6
কোনও উত্তর নেই, তবে এখানে ডটফিল (গুলি) এর উত্স সম্পর্কে আলোচনা করে জি + রব পাইক একটি ভাল যুক্ত পঠিত।
বিএসডি

উত্তর:


53

ওপেন গ্রুপ অনুসারে (পসিক্স স্ট্যান্ডার্ডের জন্য দায়বদ্ধ):

প্রতিটি ডিরেক্টরিতে ঠিক একটি প্যারেন্ট ডিরেক্টরি থাকে যা প্রথম ডিরেক্টরিতে ডট-ডট নাম দ্বারা প্রতিনিধিত্ব করা হয় । [...] ডট-ডট ফাইলের নামটি মূল ডিরেক্টরিটির সাথে সম্পর্কিত যা বাস্তবায়ন-সংজ্ঞায়িত। সংস্করণ In এ এটি মূল ডিরেক্টরি নিজেই বোঝায়; এটি POSIX.1-2-2008 এ উল্লিখিত আচরণ। কয়েকটি নেটওয়ার্ক সিস্টেমে নির্মাণ / .. / হোস্টনেম / অন্য হোস্টের মূল ডিরেক্টরি উল্লেখ করার জন্য ব্যবহৃত হয় এবং পসআইএক্স .১ এই আচরণের অনুমতি দেয়।

(উৎস)


29

আপনি একটি ত্রুটি পেতে কারণ এমনকি না /ডিরেক্টরির আসলে হয়েছে জন্য একটি বৈধ ডিরেক্টরির এন্ট্রি .., কিন্তু অন্যান্য ডিরেক্টরি সঙ্গে অসদৃশ এটা ডিরেক্টরি নিজেই পয়েন্ট এবং এইভাবে অভিন্ন আচরণ করবে .:

$ ls -lid / /. /..
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /.
128 drwxr-xr-x 22 root root 4096 Apr 15 11:26 /..
$

প্রথম কলামে আপনি বলে হিসাবে, ., .., এবং /সব একই inode নম্বর আছে এবং এইভাবে একই ফাইলসিস্টেম এন্ট্রি।

এমনকি যদি আপনি কেবল নিজের cd ..ভিতরে /থাকেন তবে /


13
প্রশ্ন জিজ্ঞেস কেন.. ডিরেক্টরির এন্ট্রি নেই।
নিক মাত্তিও

3
আমার মনে আসার একমাত্র কারণ, আপনি /বৈধ এন্ট্রি সহ অন্য কোনও ফোল্ডারের মতোই চিকিত্সা করতে চান ..। অন্যথায় আপনাকে /সিস্টেমের অন্য সমস্ত ফোল্ডারের তুলনায় আলাদা আচরণ করতে হবে।
দোহন জো

15

এটি সেখানে আছে কারণ এটি অপসারণের জন্য কার্নেল এবং সি লাইব্রেরিতে বিশেষ-কেস হ্যান্ডলিং কোড তৈরি করা প্রয়োজন। এখনই আপনি ধরে নিতে পারেন যে সর্বদা একটি '' থাকবে ' এবং আপনি যে কোনও ডিরেক্টরিতে যান '..'।

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


সর্বোপরি, গাছের কাঠামোর ক্ষেত্রে 'পিতা-মাতা-রেফারেল' এর পক্ষে কোনও বিশেষ ক্ষেত্রে পরিচালনা থেকে মুক্ত হওয়া অসম্ভব, তাই না? সংজ্ঞা অনুসারে রুটটি বিশেষ হতে হবে এবং কোনও মাস্ক দেওয়ার কোনও প্রচেষ্টা যা বিশেষ ক্ষেত্রে বা অন্য কোথাও বিভ্রান্তি ঘটায়।
মুসিফিল

@ মুসিফিল ইউনিক্সে এখানে বিশেষ ক্ষেত্রে mountকমান্ড এবং এর সাথে সম্পর্কিত বিশেষ ফাইলের দিকে রদবদল করা হয় /etc/fstab
লুসার droog

1

আরেকটি উপায় কি চেক করতে .এবং ../সত্যিই হয়:

$ readlink -f ..
/home

$ readlink -f /.
/

$ readlink -f /..
/

যেমন আপনি দেখতে পাচ্ছেন, .এবং ..নির্দেশিত হয়েছে /


1

'..' এর আরেকটি কারণ রয়েছে / এটি হ'ল যদি এটি না থাকে তবে এটি অন্য একটি বিশেষ কেস তৈরি করবে: রুট ডিরেক্টরিতে অন্য ডিরেক্টরিগুলির চেয়ে কম হার্ড লিঙ্ক থাকবে (সমস্ত ডিরেক্টরি নোডে এন + 2 লিঙ্ক রয়েছে, যেখানে এন ভিতরে সরাসরি উপ-ডিরেক্টরি সংখ্যা)। এটি ডিরেক্টরি স্ক্যানগুলির অনুকূলকরণের জন্য নির্ভর করে এমন বিভিন্ন প্রোগ্রামকে ভেঙে ফেলবে।


0

এটি সেখানে খুব সুন্দর, কারণ অন্যথায় আমি ../../../../কোনও ফোল্ডার থেকে রুটে যেতে স্প্যাম করতে সক্ষম হব না । যদি এটি ..মূলে অনুমতি না দেয় তবে আমি ওয়ার্কিং ডিরের নিচে ফোল্ডারের সংখ্যা গণনা করে আটকে যাব।


10
এর সাথে কী হয়েছে cd /?
বাচ

@ বাচ মাঝে মাঝে কীবোর্ড ম্যাসিং করা আরও মজাদার। এছাড়াও, অনেক পরিস্থিতিতে আপনি রুটে যাওয়ার চেষ্টা করছেন না, সেক্ষেত্রে ব্যবহার ../করা আরও ভাল। আমি পিএইচপি তে অনেকগুলি ফাইল অপারেশনও করি, যেখানে আমি /বেশ কয়েকটি কারণে করতে পারি না ।
Skylar Ittner

2
ফ্লিপ দিকটি হ'ল আপনি সম্ভবত ভুলবশত অনেকগুলি প্রবেশ করে ../এবং কোনও ফাইল ত্রুটি ছাড়াই চান না এমন ফাইল চালনা (বা অপসারণ) করতে পারেন।
জেমসডলিন

4
../প্রয়োজনের চেয়ে আরও বারবার পুনরাবৃত্তি করা এবং এটি হিসাবে কাজ করার ইচ্ছাটি আমার কাছে একটি (সুপ্ত) যুক্তিযুক্ত ত্রুটির মতো মনে হয়, এমনকি যদি ফাইল সিস্টেমটি এটি দৃশ্যত অনুমতি দেয় তবে।
মুশিফিল

@ মুসিফিল কমান্ডের মধ্যে ফাঁকা স্থান টাইপ করা - এটি একটি যুক্তিযুক্ত ত্রুটি (অনুমান যে লেজ -f | গ্রেপের মধ্যে সমস্ত ফাঁকা স্থান আবশ্যক)। বেশিরভাগ ইউনিক্স লোকেরা এতে ভোগেন। টাইপিং '../ ..' উইন্ডোজ-লোক সমস্যার মতো দেখায় (ডিফল্টরূপে, সিএমডি এক্স থেকে শুরু হয়: \ উইন্ডোজ এবং আপনাকে স্প্যাম করতে হবে .. প্রথম থেকেই)। একটি বড় সমস্যা আছে কেন একটি ছোট সমস্যা নিরাময়? (
স্পেসস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.