Можливо, вам не дуже потрібен сценарій. Щоб показати будь-які символічні посилання лише у поточній папці, не повторюючись у жодній дочірній папці:
знайти. -maxdepth 1 -тип l -принт
Або, щоб отримати додаткову інформацію, скористайтеся одним із:
знайти. -maxdepth 1 -тип l -exec ls -ld {} +
знайти. -maxdepth 1 -тип l -принт0 | xargs -0 ls -ld
Щоб сказати, чи є файл символічним посиланням, можна скористатися readlink, що нічого не виведе, якщо це не символічне посилання. Наступний приклад не зовсім корисний, але показує, як readlinkігнорує звичайні файли та папки. Скористайтеся одним із:
знайти. -maxdepth 1 -exec readlink {} +
знайти. -maxdepth 1 -принт0 | xargs -0 readlink
Зауважимо, що вищесказане -exec ... +і xargs ...набагато швидше, ніж -exec ... \;. Подібно до:
time find / usr / bin -maxdepth 1 -тип l -exec ls -ld {} \;
реальні 0м0.372с
користувач 0m0.087s
sys 0m0.163s
час пошуку / usr / bin -maxdepth 1 -тип l -exec ls -ld {} +
реальні 0м0.013с
користувач 0m0.004s
sys 0m0.008s
час пошуку / usr / bin -maxdepth 1 -тип l -принт0 | xargs -0 ls -ld
реальні 0м0.012с
користувач 0m0.004s
sys 0m0.009s