Обзор
Команда `link` создает жесткую ссылку, используя два указанных пути к файлам. Первый аргумент — это путь к существующему файлу, а второй — путь к новой жесткой ссылке. Эта команда похожа на функцию создания жесткой ссылки команды `ln`, но предоставляет только эту функциональность без дополнительных опций.
Основные характеристики
- Создание жесткой ссылки на существующий файл
- Разделение того же inode с исходным файлом
- Работает только в пределах одной файловой системы
- Невозможность создания жесткой ссылки на каталог
Примеры использования
Ниже приведены несколько примеров использования команды `link`.
Создание базовой жесткой ссылки
echo "Hello, World!" > original.txt
link original.txt hardlink.txt
ls -li original.txt hardlink.txt
Создает жесткую ссылку с именем `hardlink.txt` на файл `original.txt`.
Проверка ссылки после удаления исходного файла
echo "This is a test." > file_to_link.txt
link file_to_link.txt linked_file.txt
rm file_to_link.txt
cat linked_file.txt
Демонстрирует, что данные доступны через жесткую ссылку, даже если исходный файл удален.
Советы и предостережения
Полезные советы и моменты, на которые следует обратить внимание при использовании команды `link`.
Понимание жестких ссылок
- Разделение inode: Жесткие ссылки имеют тот же номер inode, что и исходный файл. Это означает, что оба имени указывают на одни и те же фактические данные. Файловая система отслеживает счетчик ссылок (link count) для inode, и фактические данные не удаляются до тех пор, пока этот счетчик не станет равным 0.
- Границы файловой системы: Жесткие ссылки могут быть созданы только в пределах одной файловой системы. Невозможно создать жесткую ссылку на файл, находящийся на другом разделе или смонтированном диске. В таких случаях следует использовать символическую ссылку (symlink).
- Запрет ссылок на каталоги: Команда `link` не может создавать жесткие ссылки на каталоги. Жесткие ссылки на каталоги обычно не допускаются, поскольку они могут нарушить целостность файловой системы.
Различия между `link` и `ln`
- Функциональность: Команда `link` создает только жесткие ссылки. Команда `ln`, напротив, может создавать символические ссылки с помощью опции `-s`, а также предоставляет больше опций, таких как `-f` (принудительная перезапись) и `-v` (подробный вывод).
- Удобство использования: В большинстве случаев команда `ln` более гибкая и удобная, поэтому она широко используется. `link` — это более простой утилитарный инструмент, предоставляющий только функциональность создания жестких ссылок команды `ln`.