답변:
./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
버전은 파일에 대한 정보를 표시 할 수 없을 때 오류 메시지를 표시합니다.
man readdir
더 낮은 수준의 세부 사항. 이 동작은 POSIX에 의해 지정되지 않았습니다.
test
디렉토리에 있는지 아닌지 (d char에서 '.'및 '..'을 확인하십시오)?