ls
L'opzione --group-directories-first
fa sì che le directory siano elencate in alto, il che rende l'output di ls
bello e pulito:
ls -l --group-directories-first
Tuttavia, non agisce symlinks
, che in realtà sono le symlinks
directory. C'è la possibilità di usare
ls -l -L --group-directories-first
che elencherà entrambi i tipi di directory in cima, ma non farà distinzione tra directory corretta e directory symlinked, il che è di nuovo fonte di confusione.
È possibile ls
visualizzare le directory con collegamenti simbolici in cima, pur mantenendole distinte dalle directory normali?
EDIT:
sto usando bash
.
ls
fa lstat()
(e readlink
per i collegamenti simbolici) a meno che tu non usi l' -L
opzione (nel qual caso utilizza stat()
)
S_ISLNK(st_mode)
anche restituito vero via stat()
, ma non lo fa - lo fa solo via lstat()
. Inoltre, ISLNK non restituisce true tramite stat anche se il collegamento è un collegamento a un collegamento. Significa che ISLNK
potrebbe non tornare mai vero tramite stat, anche se è un po 'non specificato ...
stat
ti dà le proprietà del file alla fine dei collegamenti simbolici. Se ciò non esiste o non è accessibile, stat
restituisce un ENOENT, quindi ciò che viene restituito stat
non sarà mai un collegamento simbolico. stat()
non ti dirò mai nulla dei symlink, proprio come open
non aprirò mai il symlink, o chmod()
non cambierà i permessi di un symlink ... ecc.
ls
. Secondo lastat()
chiamata di sistema, un collegamento simbolico a una directory è ancora una directory (S_ISDIR(st_mode)
restituirà true). Evidenzia evidentementels
i collegamenti simbolici prima di verificarlo.