আজ আমি আমাদের পরীক্ষার সার্ভারগুলির মধ্যে একটি সত্যিই আকর্ষণীয় কিছু পেয়েছি (কমপক্ষে আমার কাছে):
আমি আপেক্ষিক পথটি ব্যবহার করে আমার প্রকৃত কার্যনির্বাহী ডিরেক্টরি থেকে একটি বিদ্যমান ডিরেক্টরিতে পরিবর্তন করতে পারি, তবে ব্যবহারের সময় সেই একই ডিরেক্টরিটি তালিকাভুক্ত হয় না ls -a
।
শেল সেশনটি এখানে root
:
$ pwd
/you/are/here
$ ls -a
. .. <-- Note: "somedir" is not shown to root
$ echo $CDPATH
$ cd somedir <-- But still: "cd" works fine
$ pwd
/you/are/here/somedir
$ cd ..
$ pwd
/you/are/here
$ ls -a
. ..
কেউ আমাকে বলতে পারেন, এটি আদৌ কীভাবে সম্ভব? আমি চেক করেছি: ls
থেকে /bin/ls
, এবং pwd
হয় /bin/pwd
, উভয় তাদের মূল প্যাকেজ থেকে (আমি কি বলতে চান: গভীর ক্ষত নয়)।
/you
একটি মাউন্ট করা ইএমসি ডিস্ক (ext3)। এবং somedir
বিদ্যমান রয়েছে কারণ আমি এর লিখিত সামগ্রীগুলি তালিকাবদ্ধ করতে পারি (বেশ কয়েকটি সাবডির, ফাইল রয়েছে)। এর নাম বিন্দু দিয়ে শুরু হয় না।
কমান্ড এবং ls
আউটপুট সম্পর্কে আরও তথ্যের সাথে আরও কিছু শেল সেশন :
root@U-TEST@AT$/bin/ls -ali
total 4
16515074 drwxrwxr-x 2 U8000966 test 2048 Sep 1 07:39 .
16515073 drwxrwxr-x 3 U8000966 test 2048 Apr 27 2006 ..
root@U-TEST@AT$ls -ali somewhere | head -5
total 182
16515075 drwxrwxr-x 43 U8000966 test 2048 Sep 1 07:39 .
16515074 drwxrwxr-x 2 U8000966 test 2048 Sep 1 07:39 ..
16519169 drwxrwxrwx 4 U8000966 test 2048 Jul 25 2007 AAA
16515124 drwxrwxr-x 3 U8000966 test 2048 May 12 2006 BBB
root@U-TEST@AT$type ls
ls is aliased to `/bin/ls $LS_OPTIONS'
root@U-TEST@AT$type pwd
pwd is a shell builtin
root@U-TEST@AT$/bin/pwd
/you/are/here
root@U-TEST@AT$cd somewhere
root@U-TEST@AT$/bin/pwd
/you/are/here/somewhere
root@U-TEST@AT$type cd
cd is a shell builtin
প্রথমটির পরে মোট 4 টি নোট করুন ls -ali
। (এটি প্রাসঙ্গিক কিনা আমি জানি না ...)
আরও কিছু পরীক্ষা:
root@UR-TEST@AT$ls
. ..
root@U-TEST@AT$touch somewhere/testfile
root@U-TEST@AT$ls
. ..
root@U-TEST@AT$cp somewhere/testfile ./
root@U-TEST@AT$ls
. .. testfile
root@U-TEST@AT$du .
2 .
root@URBIS-TEST@AT$
এবং ইএমসি হ'ল: http://www.emc.com/products/family/disk-library-family.htm , তবে তারা কেবল এই ক্ষেত্রে হার্ড ডিস্ক সহ একটি ডিস্ক সরবরাহকারী, ext3 হিসাবে ফর্ম্যাট করা।
হালনাগাদ
(দুঃখিত, তবে গতকাল আমাকে চলে যেতে হয়েছিল)
আমি চেক করেনি echo *
, এবং তার আউটপুট হল: . ..
। এখানে LS_OPTIONS
: -a -N --color=tty -T 0
।
আমি গিলস দ্বারা উল্লিখিত স্বতঃপরিবর্তনীয় জিনিসটি যাচাই করেছিলাম, কিন্তু আমি পরিবর্তিত হয়েছি somewhere
এবং একটি জারি mount|grep somewhere
করার পরে কোনও আউটপুট ছিল না।
প্রস্তাবিত হিসাবে এখানে ফলাফল lsattr
এবং strace
আউটপুট: http://gist.github.com/566947 47
somedir
আসলেই আছে? টাইপ করার সময় কোনও ক্লু ls -a /you/are/here/somedir
?
ls -a
করে না somedir
( root
তবে), তবে এখনও cd somedir
ঠিক কাজ করে।
ls is aliased to /bin/ls $LS_OPTIONS
। তো, তাহলে কি দেয় echo $LS_OPTIONS
? (যদিও আমি সন্দেহ করি যে এটি প্রাসঙ্গিক যখন আপনি /bin/ls
একই ফলাফলের সাথে স্পষ্টভাবে ব্যবহার করেছিলেন, এবং আগ্রহী "মোট 4" ...)
echo *
, ls -ld somedir
, ls -lb
বা ls -l|cat -v
কিছু সহায়ক দেখাবেন?