Поиск по сайту:

[Советы по Linux] Как составить список символических ссылок в Linux

Мы уже знали, что такое символические ссылки, символические ссылки или программные ссылки и как находить и удалять неработающие символические ссылки из нашей системы Linux. Сегодня мы научимся составлять список символических ссылок в Linux. Если вы уже давно создали символические ссылки и совершенно забыли о них, этот быстрый совет поможет вам легко найти символические ссылки с помощью команды «найти».

Получение списка символических ссылок в Linux

Чтобы просмотреть все символические или символические ссылки или программные ссылки в системе Linux, запустите:

sudo find / -type l

Здесь,

  • / — представляет всю файловую систему.
  • -type — указывает тип файла.
  • l — ссылка на символическую ссылку.

Эта команда будет искать все доступные символические ссылки во всей файловой системе. Это займет некоторое время в зависимости от размера вашей файловой системы. Пожалуйста, будьте терпеливы!

Если вы хотите ограничить поиск символических ссылок в определенном каталоге, укажите его путь, как показано ниже.

Например, следующая команда выведет список всех программных ссылок в текущем каталоге:

find . -type l

Обратите внимание на одну точку (.) в приведенной выше команде. В Linux одна точка (.) используется для обозначения текущего (настоящего) каталога каталога. Двойная точка (..) используется для обозначения родительского каталога.

Пример вывода:

./snap/multipass/current
./snap/multipass/1597/.config/autostart
./snap/multipass/1597/config/autostart/multipass.gui.autostart.desktop
./snap/multipass/1784/.config/autostart
./snap/multipass/1784/config/autostart/multipass.gui.autostart.desktop
./.local/share/webkitgtk/databases/indexeddb/v0
find: ‘./.dbus’: Permission denied
./.config/spyder-py3/spyder.lock
./Downloads/Tor browser/Browser/.config/ibus/bus
./.mozilla/firefox/htoypxlg.default-1563118799416/lock

Если вы хотите искать символические ссылки в другом каталоге, замените точку (.) на путь к каталогу.

Если вам нужен подробный вывод, включая временные метки, права доступа к файлам, владельца и группу, используйте вместо этого следующую команду:

find . -type l -ls

Пример вывода:

  4458987      0 lrwxrwxrwx   1 sk       sk              4 Mar  6 13:58 ./snap/multipass/current -> 1784
 11927799      0 lrwxrwxrwx   1 sk       sk             19 Mar  5 11:20 ./snap/multipass/1597/.config/autostart -> ../config/autostart
 11932200      4 lrwxrwxrwx   1 sk       sk             72 Feb 27 15:30 ./snap/multipass/1597/config/autostart/multipass.gui.autostart.desktop -> /snap/multipass/1597/usr/share/multipass/multipass.gui.autostart.desktop
 11534358      0 lrwxrwxrwx   1 sk       sk             19 Mar 17 11:51 ./snap/multipass/1784/.config/autostart -> ../config/autostart
 11666096      4 lrwxrwxrwx   1 sk       sk             72 Mar  6 13:58 ./snap/multipass/1784/config/autostart/multipass.gui.autostart.desktop -> /snap/multipass/1784/usr/share/multipass/multipass.gui.autostart.desktop
  5246237      0 lrwxrwxrwx   1 sk       sk             51 Feb 12 20:14 ./.local/share/webkitgtk/databases/indexeddb/v0 -> /home/sk/.local/share/webkitgtk/databases/indexeddb
find: ‘./.dbus’: Permission denied
  4459630      0 lrwxrwxrwx   1 sk       sk              5 Jan 24 17:39 ./.config/spyder-py3/spyder.lock -> 18461
  4340805      0 lrwxrwxrwx   1 sk       sk             25 Feb 15 15:21 ./Downloads/Tor\ browser/Browser/.config/ibus/bus -> /home/sk/.config/ibus/bus
  4328111      0 lrwxrwxrwx   1 sk       sk             20 Mar 17 11:56 ./.mozilla/firefox/htoypxlg.default-1563118799416/lock -> 192.168.225.37:+2642

Получение списка символических ссылок в Linux

Как вы могли заметить из приведенных выше результатов, команда find ищет символические ссылки в текущем каталоге и его подкаталогах.

Если вы хотите перечислить все символические ссылки на один уровень ниже в текущем каталоге, используйте флаг maxlength, как показано ниже.

find . -maxdepth 1 -type l

Другой способ найти список символических ссылок в текущем каталоге:

find . -type l -printf '%p -> %l\n'

Это рекурсивно выведет список всех символических ссылок в текущем каталоге. Кроме того, он показывает фактические файлы, на которые указывает.

Пример вывода:

./snap/multipass/current -> 1784
./snap/multipass/1597/.config/autostart -> ../config/autostart
./snap/multipass/1597/config/autostart/multipass.gui.autostart.desktop -> /snap/multipass/1597/usr/share/multipass/multipass.gui.autostart.desktop
./snap/multipass/1784/.config/autostart -> ../config/autostart
./snap/multipass/1784/config/autostart/multipass.gui.autostart.desktop -> /snap/multipass/1784/usr/share/multipass/multipass.gui.autostart.desktop
./.local/share/webkitgtk/databases/indexeddb/v0 -> /home/sk/.local/share/webkitgtk/databases/indexeddb
find: ‘./.dbus’: Permission denied
./.config/spyder-py3/spyder.lock -> 18461
./Downloads/Tor browser/Browser/.config/ibus/bus -> /home/sk/.config/ibus/bus
./.mozilla/firefox/htoypxlg.default-1563118799416/lock -> 192.168.225.37:+2642

Более подробную информацию можно найти на страницах руководства.

man find

Надеюсь это поможет.

Статьи по данной тематике