जब मैं उस निर्देशिका पर अनुमति नहीं देता, तो 'ls' और 'ls -l' के बीच क्या अंतर है?


11

मैंने एक निर्देशिका बनाई, जिसे folderनिष्पादित करने की अनुमति दी गई।

$ mkdir folder
$ touch folder/innerFile
$ mkdir folder/innerFolder
$ chmod -x folder

अब अगर मैं

$ ls folder

यह फाइलों की एक सूची तैयार करता है, लेकिन जब मैं करता हूं

$ ls -l folder

मुझे मिला

ls: innerFile: Permission denied
ls: innerFolder: Permission denied

ऐसा क्यों है?


4
इस उत्तर की जाँच करें । इसमें आपके प्रश्न के उत्तर हैं।
रमेश

2
"जब मैं उस निर्देशिका पर अनुमति नहीं देता, तो 'ls' और 'ls -l' के बीच क्या अंतर है?" मूल रूप से, यह 'ls' और 'ls -l' के बीच के अंतर के समान है जब आपके पास निर्देशिका पर अनुमति निष्पादित होती है।
जी-मैन का कहना है कि

जवाबों:


18

ls -lएक फ़ोल्डर में statअपनी सामग्री की कोशिश करता है , जबकि lsयह नहीं है:

$ strace ls folder -l
...
lstat("folder/innerFolder", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
getxattr("folder/innerFolder", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFolder", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
lstat("folder/innerFile", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
getxattr("folder/innerFile", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFile", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
...

इसलिए आपको "अनुमति से वंचित" होना चाहिए ls -lऔर साथ नहीं ls

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.