Это будет рекурсивно проходить по /path/to/folder
каталогу и перечислять только символические ссылки:
ls -lR /path/to/folder | grep ^l
Если вы намерены также следовать символическим ссылкам, вам следует использовать find
команду, но вы должны включить эту -L
опцию; на самом деле, find
страница руководства гласит:
-L Follow symbolic links. When find examines or prints information
about files, the information used shall be taken from the prop‐
erties of the file to which the link points, not from the link
itself (unless it is a broken symbolic link or find is unable to
examine the file to which the link points). Use of this option
implies -noleaf. If you later use the -P option, -noleaf will
still be in effect. If -L is in effect and find discovers a
symbolic link to a subdirectory during its search, the subdirec‐
tory pointed to by the symbolic link will be searched.
When the -L option is in effect, the -type predicate will always
match against the type of the file that a symbolic link points
to rather than the link itself (unless the symbolic link is bro‐
ken). Using -L causes the -lname and -ilname predicates always
to return false.
Тогда попробуйте это:
find -L /var/www/ -type l
Это, вероятно, сработает: я нашел на find
странице руководства этот ромб: если вы используете -type
опцию, вы должны изменить ее на -xtype
опцию:
l symbolic link; this is never true if the -L option or the
-follow option is in effect, unless the symbolic link is
broken. If you want to search for symbolic links when -L
is in effect, use -xtype.
Затем:
find -L /var/www/ -xtype l
find -L /var/www/ -xtype l
). Использование-xtype
вместо-type
должно сделать трюк в вашей находке. Удачи!ls -laR /path/to/folder | grep ^l
если вы также хотите обрабатывать «скрытые» папки с точками ...-xtype
недоступно.find . -type l
кажется, проверяет рекурсивно.Одна команда, без труб
Пояснение:
find
из текущего каталога и.
далее все ссылки на-type l
чернила и перечислите-ls
их подробно. Легко и просто...В продолжение этого ответа приведем еще пару
find
команд, связанных с символьными ссылками :Найти символические ссылки на конкретную цель
Обратите внимание, что
link_target
это шаблон, который может содержать символы подстановки.Найти неработающие символические ссылки
-L
Инструктируетfind
следовать символическим ссылкам, если при разбивании.Найти и заменить неработающие символические ссылки
Больше найти примеры
Дополнительные
find
примеры можно найти здесь: https://hamwaves.com/find/источник
find
имеют-ls
опцию. Такfind . -type l -ls
должно быть эквивалент выше.find -lname '*/dir/*' -printf '%P -> %l\n'
. Стоит отметить, что link_target - это шаблон.find
уже выглядит рекурсивно по умолчанию:источник
find
Рекурсирует ли это по умолчанию? Наверное, нет;)-L
флаг для поиска без удачи - какие-либо догадки?Чтобы увидеть только символические ссылки, вы можете использовать
в то время как если вы хотите увидеть также, какие файлы они целевые, просто добавьте ls
источник
Это лучшее, что я нашел на данный момент - показывает вам символические ссылки в текущем каталоге, рекурсивно, но без них, отображается с полными путями и другой информацией:
вывод выглядит примерно так:
источник
Что я делаю, так это создаю скрипт в каталоге bin, похожий на псевдоним. Например, у меня есть скрипт с именем lsd ls -l | grep ^ d
Вы могли бы сделать один lsl ls -lR | grep ^ l
Просто chmod их + х, и вы готовы идти.
источник