Yanıtlar:
Şu izinleri kontrol edin ./directory
: okuma izniniz varsa ancak bu dizinde izinleri yürütmüyorsanız, o dizindeki dosyaların listesini okumak için yeterli haklara sahip olursunuz, ancak bu dosyaları kullanamaz veya bunlar hakkında bilgi alamazsınız.
örnek oturum:
$ 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
$
Bazı ls
sürümler dosyalar hakkında bilgi görüntüleyemediklerinde hata iletileri gösterir.
man readdir
daha düşük seviye ayrıntı için. Bu davranışın POSIX tarafından belirtilmediğini unutmayın.
test
dizin içinde mi değil mi (d. '.' Ve '..' için kontrol edin)?