Возможно, вам не нужен сценарий. Чтобы показать любые символические ссылки только в текущей папке, не возвращаясь ни в одну дочернюю папку:
find . -maxdepth 1 -type l -print
Или, чтобы получить больше информации, используйте один из:
find . -maxdepth 1 -type l -exec ls -ld {} +
find . -maxdepth 1 -type l -print0 | xargs -0 ls -ld
Чтобы определить, является ли файл символической ссылкой, можно использовать readlink
, которая ничего не выдаст, если это не символическая ссылка. Следующий пример не совсем полезен, но показывает, как readlink
игнорирует обычные файлы и папки. Используйте один из:
find . -maxdepth 1 -exec readlink {} +
find . -maxdepth 1 -print0 | xargs -0 readlink
Обратите внимание, что выше -exec ... +
и xargs ...
намного быстрее, чем -exec ... \;
, Подобно:
time find /usr/bin -maxdepth 1 -type l -exec ls -ld {} \;
real 0m0.372s
user 0m0.087s
sys 0m0.163s
time find /usr/bin -maxdepth 1 -type l -exec ls -ld {} +
real 0m0.013s
user 0m0.004s
sys 0m0.008s
time find /usr/bin -maxdepth 1 -type l -print0 | xargs -0 ls -ld
real 0m0.012s
user 0m0.004s
sys 0m0.009s