ls
L'option --group-directories-first
fait apparaître les répertoires en haut, ce qui rend la sortie ls
agré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 ls
afficher 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
.
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 évidemmentls
les liens symboliques avant de vérifier cela.ls
nelstat()
(etreadlink
pour les liens symboliques) sauf si vous utilisez l'-L
option de (auquel cas il utilisestat()
)S_ISLNK(st_mode)
également vrai viastat()
, mais ce n'est pas le cas - il le fait uniquement vialstat()
. De plus, ISLNK ne renvoie pas true via stat même si le lien est un lien vers un lien. Ce quiISLNK
pourrait ne jamais revenir vrai via stat, bien que ce soit un peu indéterminé ...stat
vous donne les propriétés du fichier à la fin du ou des liens symboliques. Si cela n'existe pas ou n'est pas accessible, lestat
retourne un ENOENT, donc ce qui est retourné parstat
ne sera jamais un lien symbolique.stat()
ne vous dira jamais rien à propos des liens symboliques, tout commeopen
n'ouvrira jamais le lien symbolique, ouchmod()
ne changera pas les autorisations d'un lien symbolique ... etc.Réponses:
Non, mais si vous utilisez
zsh
, vous pouvez faire:Vous pouvez également définir un ordre de tri global comme:
et l'utiliser comme:
De cette façon, vous pouvez l'utiliser pour d'autres commandes que
ls
ouls
avec différentes options, ou pour différents modèles comme:ou:
Si vous devez utiliser
bash
, l'équivalent serait comme:bash
n'a pas de qualificatifs de globalisation ou aucun moyen d'affecter l'ordre de tri des globes, ni aucun moyen de transformer nullglob sur une base par glob, ou d'avoir un contexte local pour les options (autre que le démarrage d'un sous-shell, d'où la()
place de{}
ci - dessus) AFAIK .la source
bash
?