Linux: ls -l imprime apenas pontos de interrogação:

9

Eu tenho um problema com a listagem de algum diretório com ls -l:

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

e apenas funciona bem:

$ ls ./directory
file001.txt file002.txt

O que está errado?

    
por osgx 05.01.2013 / 10:36

1 resposta

12

Verifique as permissões de ./directory : se você tiver permissões de leitura, mas não permissões de execução nesse diretório, terá direitos suficientes para ler a lista de arquivos nesse diretório, mas não poderá usar esses arquivos ou obter informações sobre eles.

sessão de exemplo:

$ 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
$

Algumas ls versões mostram mensagens de erro quando não podem exibir informações sobre arquivos.

    
por 05.01.2013 / 11:00