Чтобы найти абсолютные ссылки, вы можете использовать параметр find
-lname
, если ваш find
поддерживает его (он доступен по крайней мере в GNU find
, в FreeBSD и macOS):
find . -type l -lname '/*'
Это просит find
напечатать имена файлов, которые являются символическими ссылками и чье содержимое (цель) совпадает с / *
с использованием оболочки глобус.
Строго говоря, POSIX определяет, что абсолютные пути начинаются с одного /
или трех или более /
; чтобы соответствовать этому, вы можете использовать
find . -lname '/*' ! -lname '//*' -o -lname '///*'
В каких системах // foo / bar отличается от / foo / bar? содержит более подробную информацию об этом.
(Спасибо Sato Katsura за указание на то, что -lname
специфично для GNU, fd0 за упоминание, что оно также доступно, по крайней мере, на FreeBSD) и macOS, а также Стефану Шазеласу за то, что он вызвал определение абсолютного имени пути POSIX.)