ls
A opção --group-directories-first
faz com que os diretórios sejam listados na parte superior, o que torna a saída ls
agradável e limpa:
ls -l --group-directories-first
No entanto, ele não age sobre symlinks
, que são, na verdade symlinks
aos diretórios. Existe a possibilidade de usar
ls -l -L --group-directories-first
que listará ambos os tipos de diretórios na parte superior, mas não fará distinção entre o diretório apropriado e o diretório vinculado, o que é novamente confuso.
Pode ls
exibir diretórios com links simbólicos na parte superior, mantendo-os distintos dos diretórios regulares?
EDIT:
eu estou usando bash
.
ls
faz lstat()
(e readlink
para links simbólicos) a menos que você use a -L
opção (caso em que ele usa stat()
)
S_ISLNK(st_mode)
também retornava verdadeiro via stat()
, mas isso não acontece - apenas o faz via lstat()
. Além disso, o ISLNK não retorna true via stat, mesmo que o link seja um link para um link. O que significa que ISLNK
talvez nunca retorna true via stat, apesar de que é tipo de não especificada ...
stat
fornece as propriedades do arquivo no final dos links simbólicos. Se isso não existir ou não estiver acessível, stat
retornará ENOENT; portanto, o que é retornado stat
nunca será um link simbólico. stat()
nunca vai dizer nada sobre links simbólicos, como open
nunca vai abrir o link simbólico, ou chmod()
não vai alterar as permissões de um link simbólico ... etc.
ls
. De acordo com astat()
chamada do sistema, um link simbólico para um diretório ainda é um diretório (S_ISDIR(st_mode)
retornará verdadeiro). Evidencialmentels
desconta os links simbólicos antes de verificar isso.