Символическая ссылка — это просто файл, который показывает на другой файл или папку. Почти как ярлык в 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, а не суперсекретный боевой код. Главное — понимать, что ссылки — это просто инструменты, чтобы не плодить кучу копий файлов.
0 комментариев