Я не зовсім розумію, чому роздуми над цією простою проблемою мають бути настільки складними - але, можливо, я просто зрозумів це питання не так. У будь-якому разі: коли мені потрібен був подібний функціонал, я використовував:
ls -lL
Це і зробило трюк у моєму випадку. На ls
чоловіковій сторінці:
-L, --dereference
when showing file information for a symbolic link,
show information for the file the link references
rather than for the link itself
Наприклад, я створив /media/stick
ярлик для доступу до даних на USB-накопичувачі. ls -l /media/stick
покаже фактичне посилання, а вмістls -lL /media/stick
буде показано на USB-накопичувачі.
Після деяких глибших досліджень про різницю між внутрішніми роботами -H
та -L
, нарешті, я наткнувся на чудову статтю з цього приводу в блозі « Shallow Thoughts» (навіть із зображенням акуратних трюків із сценарієм оболонки для вашого задоволення!)
Це вказує на тонкі відмінності між двома параметрами (набагато кращими, ніж оригінальний посібник!) Наступним чином:
-H
- лише розвідка тих посилань, явно зазначених у командному рядку
-L
- посилання відновлення, навіть якщо вони не вказані в командному рядку
(Коли ці двоє використовуються з простими повсякденними завданнями, взагалі не повинно бути різниці у виході.)
Крім того: Якщо ви віддаєте перевагу запам'ятати довгу форму ( --option
), це, ймовірно, менш громіздке запам'ятовування, --dereference
ніж надмірно довге чудовисько --dereference-command-line-symlink-to-dir
.