Существует два типа ссылок, которые вы можете создать в Linux:
- Жесткие ссылки
- Символические ссылки
Символическая ссылка очень похожа на ярлык на рабочем столе в Windows. Символическая ссылка просто указывает на расположение файла.
Удаление символической ссылки не влияет на физический файл, на который указывает ссылка.
Символьная ссылка может указывать на любой файл в текущей файловой системе или на другие файловые системы. Это делает его более гибким, чем жесткая ссылка.
Жесткая ссылка - это тот же файл, к которому он привязан, но с другим именем. Самый простой способ подумать об этом заключается в следующем:
Представьте, что вы родились с именем Роберт. Другие люди могут знать вас как Робби, Боба, Бобби или Роба. Каждый человек будет говорить об одном и том же человеке.
Каждая ссылка добавляет 1 к счетчику ссылок, что означает удаление физического файла, который вы должны удалить каждую из ссылок.
Зачем использовать жесткие ссылки?
Жесткие ссылки обеспечивают эффективный способ организации файлов. Самый простой способ описать это - это старый эпизод «Улица Сезам».
Берт сказал Эрни, чтобы убрать все свои вещи, и поэтому Эрни задал ему задачу. Прежде всего, он решил убрать все красные вещи. «Пожарная машина красная». Поэтому Эрни убирает огонь.
Затем Эрни решает убрать все игрушки с колесами. У пожарного двигателя есть колеса. Итак, Эрни убрал пожарную машину.
Излишне говорить, что Берт приходит домой, чтобы найти точно такой же беспорядок, как и раньше, но Эрни прибрал пожарную машину полдюжины раз.
Представьте себе, что пожарная машина была всего лишь изображением пожарного двигателя. На вашем компьютере могут быть разные папки:
- Фотографии красных вещей
- Фотографии транспортных средств
- Фотографии аварийных служб
Теперь вы можете создать копию фотографии и поместить ее в каждую из папок. Это означает, что у вас есть три копии одного и того же файла, занимающих в три раза больше места.
Категоризация фотографий путем их копирования может не занимать слишком много места, но если вы попытаетесь сделать то же самое с видео, вы значительно уменьшите дисковое пространство.
Жесткая ссылка вообще не занимает места. Таким образом, вы можете хранить одно и то же видео в разных категориях (например, год, жанр, актеры, режиссеры), не сокращая дисковое пространство.
Как создать жесткую ссылку
Вы можете создать жесткую ссылку, используя следующий синтаксис:
ln путь / в / файл / путь / в / hard / link
Например, на изображении выше у нас есть музыкальная папка Alice Cooper под названием Trash в пути / home / gary / Music / Alice Cooper / Trash. В этой папке есть 10 песен, один из которых является классическим ядом.
Теперь Poison - это рок-трек, поэтому мы создали папку под названием Rock под музыкальной папкой и создали жесткую ссылку на Poison, набрав следующий файл:
ln "01 - Poison.mp3" "~ / Музыка / рок / Poison.mp3"
Это хороший способ организовать музыку.
Как рассказать о разнице между жесткой связью и символической ссылкой
Вы можете определить, имеет ли файл жесткую ссылку, используя команду ls:
ls -lt
Стандартный файл без ссылок будет выглядеть следующим образом
-rw-r-r-- 1 gary gary 1000 Dec 18 21:52 poison.mp3
Столбцы:
- -rw-r - r-- = разрешения
- 1 = количество ссылок
- gary = group
- gary = владелец
- 1000 = размер файла
- 18 декабря = дата
- 21:52 = время
- poison.mp3 = имя_файла
Если бы это была жесткая ссылка, результат выглядел бы следующим образом:
-rw-r - r-- 2 gary gary 1000 Dec 18 21:52 poison.mp3
Обратите внимание, что количество столбцов ссылок показывает 2. Каждый раз, когда создается жесткая ссылка, число увеличивается.
Символическая ссылка будет выглядеть следующим образом:
-rw-r - r-- 1 gary gary 1000 Dec 18 21:52 poison.mp3 -> poison.mp3
Вы можете ясно видеть, что один файл указывает на другой.
Как найти все жесткие ссылки в файл
Все файлы в вашей системе Linux содержат номер inode, который однозначно идентифицирует файл. Файл и его жесткая ссылка будут содержать один и тот же индекс.
Чтобы увидеть номер inode для типа файла, выполните следующую команду:
ls -i
Выход для одного файла будет следующим:
1234567 имя_файла
Чтобы найти жесткие ссылки для файла, вам просто нужно выполнить поиск файлов для всех файлов с тем же inode (т. Е. 1234567).
Вы можете сделать это с помощью следующей команды:
найти ~ / -xdev -inum 1234567