lsL'option --group-directories-firstfait apparaître les répertoires en haut, ce qui rend la sortie lsagréable et propre:
ls -l --group-directories-first
Cependant, il n'agit pas symlinks, qui sont en fait symlinksà des répertoires. Il est possible d'utiliser
ls -l -L --group-directories-first
qui listera les deux types de répertoires en haut, mais ne fera pas de distinction entre le répertoire approprié et le répertoire avec lien symbolique, ce qui est encore une fois déroutant.
Peut-il lsafficher des répertoires liés par des liens symboliques sur le dessus, tout en les gardant distincts des répertoires classiques?
EDIT:
J'utilise bash.
lsne lstat()(et readlinkpour les liens symboliques) sauf si vous utilisez l' -Loption de (auquel cas il utilise stat())
S_ISLNK(st_mode)également vrai via stat(), mais ce n'est pas le cas - il le fait uniquement via lstat(). De plus, ISLNK ne renvoie pas true via stat même si le lien est un lien vers un lien. Ce qui ISLNKpourrait ne jamais revenir vrai via stat, bien que ce soit un peu indéterminé ...
statvous donne les propriétés du fichier à la fin du ou des liens symboliques. Si cela n'existe pas ou n'est pas accessible, le statretourne un ENOENT, donc ce qui est retourné par statne sera jamais un lien symbolique. stat()ne vous dira jamais rien à propos des liens symboliques, tout comme openn'ouvrira jamais le lien symbolique, ou chmod()ne changera pas les autorisations d'un lien symbolique ... etc.
ls. Selon l'stat()appel système, un lien symbolique vers un répertoire est toujours un répertoire (S_ISDIR(st_mode)renvoie true). Evite évidemmentlsles liens symboliques avant de vérifier cela.