lsA opção --group-directories-firstfaz com que os diretórios sejam listados na parte superior, o que torna a saída lsagradável e limpa:
ls -l --group-directories-first
No entanto, ele não age sobre symlinks, que são, na verdade symlinksaos 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 lsexibir diretórios com links simbólicos na parte superior, mantendo-os distintos dos diretórios regulares?
EDIT:
eu estou usando bash.
lsfaz lstat()(e readlinkpara links simbólicos) a menos que você use a -Lopçã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 ISLNKtalvez nunca retorna true via stat, apesar de que é tipo de não especificada ...
statfornece as propriedades do arquivo no final dos links simbólicos. Se isso não existir ou não estiver acessível, statretornará ENOENT; portanto, o que é retornado statnunca será um link simbólico. stat()nunca vai dizer nada sobre links simbólicos, como opennunca 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). Evidencialmentelsdesconta os links simbólicos antes de verificar isso.