লিনাক্স: ls -l কেবল প্রশ্ন চিহ্ন প্রিন্ট করে:


11

Ls -l দিয়ে কিছু ডিরেক্টরি তালিকাতে আমার সমস্যা আছে:

$ ls -l ./directory
-????????? ? ? ? ?            ? file001.txt
-????????? ? ? ? ?            ? file002.txt

এবং শুধু ls ভাল কাজ করে:

$ ls ./directory
file001.txt file002.txt

কি সমস্যা?

উত্তর:


14

এর অনুমতিগুলি পরীক্ষা করুন ./directory: যদি আপনি এই ডিরেক্টরিতে অনুমতিগুলি পড়ে থাকেন তবে অনুমতিগুলি কার্যকর করেন না, তবে সেই ডিরেক্টরিতে থাকা ফাইলগুলির তালিকা পড়ার আপনার যথেষ্ট অধিকার রয়েছে, তবে আপনি আসলে এই ফাইলগুলি ব্যবহার করতে বা সেগুলি সম্পর্কে তথ্য পেতে পারবেন না।

উদাহরণ সেশন:

$ cd /tmp/
$ mkdir /tmp/test
$ touch /tmp/test/file
$ ls -la test/
total 44
drwxr-xr-x  2 myself myself  4096 janv.  5 11:01 .
drwxrwxrwt 42 root   root   54242 janv.  5 11:01 ..
-rw-r--r--  1 myself myself     0 janv.  5 11:01 file
$ chmod a-x /tmp/test # remove execute permission for all
$ ls -la test/
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
-????????? ? ? ? ?            ? file
$ ls -ld test/
drw-r--r-- 2 myself myself 4096 Jan  5 11:01 test/
$ cat test/file 
cat: test/file: Permission denied
$ chmod a+x /tmp/test # readd execute permission for all
$ ls -la test/
total 44
drwxr-xr-x  2 myself myself  4096 janv.  5 11:01 .
drwxrwxrwt 42 root   root   54242 janv.  5 11:01 ..
-rw-r--r--  1 myself myself     0 janv.  5 11:01 file
$ ls -ld test/
drwxr-xr-x 2 myself myself 4096 Jan  5 11:01 test/
$ cat test/file
$

কিছু lsসংস্করণ ফাইল সম্পর্কিত তথ্য প্রদর্শন করতে না পারলে ত্রুটি বার্তা প্রদর্শন করে।


তবে এলএস কীভাবে জানতে পারে, ফাইলটি test ডিরেক্টরি ভিতরে থাকা বা না (চেক ডি চর '।' এবং '..' এর জন্য)?
osgx

1
@osgx: ফাইলের নাম এবং ইনোড নম্বর সহ এটি ফাইল তালিকার একটি অংশ। man readdirআরও নিম্ন-স্তরের বিশদ জন্য। নোট করুন যে এই আচরণটি পসিক্স দ্বারা নির্দিষ্ট করা হয়নি।
ব্যাচএক্সএক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.