ls
opsi --group-directories-first
menyebabkan direktori terdaftar di atas, yang membuat output menjadi ls
bagus dan bersih:
ls -l --group-directories-first
Namun, itu tidak bertindak symlinks
, yang sebenarnya symlinks
ke direktori. Ada kemungkinan untuk digunakan
ls -l -L --group-directories-first
yang akan mencantumkan kedua jenis direktori di atas, tetapi tidak akan membedakan antara direktori yang tepat dan direktori yang dikaitkan, yang lagi-lagi membingungkan.
Dapatkah ls
menampilkan direktori yang disinkronkan di atas, sambil tetap membedakannya dari direktori biasa?
EDIT:
Saya menggunakan bash
.
ls
tidak lstat()
(dan readlink
untuk symlink) kecuali jika Anda menggunakan -L
opsi (dalam hal ini yang digunakan stat()
)
S_ISLNK(st_mode)
juga mengembalikan true via stat()
, tetapi tidak - hanya melakukannya melalui lstat()
. Juga bahwa ISLNK tidak mengembalikan true melalui stat bahkan jika tautannya adalah tautan ke tautan. Berarti itu ISLNK
mungkin tidak pernah kembali benar melalui stat, meskipun itu semacam tidak ditentukan ...
stat
memberi Anda properti file di akhir symlink. Jika itu tidak ada atau tidak dapat diakses, stat
mengembalikan ENOENT, sehingga apa yang dikembalikan oleh stat
tidak akan pernah menjadi symlink. stat()
tidak akan pernah memberi tahu Anda apa pun tentang symlink, sama seperti open
tidak akan pernah membuka symlink, atau chmod()
tidak akan mengubah izin symlink ... dll.
ls
. Menurutstat()
panggilan sistem, tautan simbolik ke direktori masih berupa direktori (S_ISDIR(st_mode)
akan mengembalikan true). Buktils
diskon symlinks sebelum memeriksa ini.