Символическая ссылка — это просто файл, который показывает на другой файл или папку. Почти как ярлык в Windows, только тут всё чуть хитрее.

Жёсткие ссылки — что за зверь

Жёсткая ссылка — это просто ещё одно имя для одного и того же файла. Несколько имён — один и тот же inode. Только имей в виду: жёсткие ссылки не работают с папками и не могут ссылаться на файлы в других разделах. Система так решила — и с этим ничего не поделать.

Символические ссылки — в чём прикол

Это файл, в котором хранится путь до другого файла или каталога. Может указывать куда угодно — даже на несуществующий файл. Если оригинал пропадёт — ссылка останется и будет вести в никуда. Мёртвая ссылка, короче.

Команда ln

По умолчанию ln создаёт жёсткие ссылки. Чтобы сделать символическую — добавь -s.

ln -s [исходник] [ссылка]

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

Пример

Есть файл my_file.txt. Чтобы создать символическую ссылку my_link.txt — вводи:

ln -s my_file.txt my_link.txt

Проверить можно так:

ls -l my_link.txt

Будет примерно так:

lrwxrwxrwx 1 user group 11 Nov  2 23:03 my_link.txt -> my_file.txt

l — ссылка, стрелка показывает, куда она ведёт.

Ссылки на каталоги

Точно так же:

ln -s /mnt/my_drive/movies ~/my_movies

Теперь ~/my_movies — это просто ссылка на каталог /mnt/my_drive/movies.

Если ссылка уже есть

Попытаешься создать ссылку с уже занятым именем — будет ошибка. Чтобы перезаписать, добавляй -f:

ln -sf my_file.txt my_link.txt

Удаление ссылок

Удалять символические ссылки проще простого:

rm my_link.txt
# или unlink my_link.txt

Не добавляй в конце косую черту — иначе удалишь не ссылку, а то, куда она ведёт.

Что надо знать напоследок

  • Если исходный файл удалят или переместят, ссылка останется и будет мёртвой. Такие ссылки надо удалять, чтобы не захламлять систему.
  • Жёсткие ссылки — удобно, если нужно несколько имён для одного файла, но их нельзя для папок и на разные разделы.
  • Символические ссылки — универсальны, но если исходник пропал — ссылка бесполезна.

Вот и вся магия. Если с ln не разобрался — просто возьми и попробуй вбить пару команд. Ошибок бояться не стоит — это Linux, а не суперсекретный боевой код. Главное — понимать, что ссылки — это просто инструменты, чтобы не плодить кучу копий файлов.