Иногда при работе в командной строке возникает необходимость создавать символьные ссылки между файлами. Это можно сделать с помощью специальной команды, называемой ln. В этом руководстве мы рассмотрим основы этого инструмента на простых примерах. Но прежде чем приступить к этому, стоит отметить, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 22.04.
Команда ln в Linux
Как вы уже поняли, команда ln позволяет создавать ссылки между файлами. Ниже приведен синтаксис (или, вернее, один из возможных синтаксисов) этого инструмента:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form) ln [OPTION]... TARGET (2nd form) ln [OPTION]... TARGET... DIRECTORY (3rd form) ln [OPTION]... -t DIRECTORY TARGET... (4th form)
А вот как это объясняется на справочной странице инструмента:
In the 1st form, create a link to TARGET with the name LINK_NAME. In the 2nd form, create a link to TARGET in the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links by default, symbolic links with --symbolic. By default, each destination (name of new link) should not already exist. When creating hard links, each TARGET must exist. Symbolic links can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory.
Следующие примеры в формате «вопрос-ответ» помогут вам лучше понять, как работает команда ln. Но прежде чем приступить к ним, вам полезно понять, в чем разница между жесткими и мягкими ссылками.
В1. Как создать жесткую ссылку с помощью ln?
Это довольно просто — все, что вам нужно сделать, это использовать команду ln следующим образом:
ln [file] [hard-link-to-file]
Например:
ln test.txt test_hard_link.txt

Как видите, была создана жесткая ссылка с именем test_hard_link.txt.
Вопрос 2. Как создать мягкую/символическую ссылку с помощью ln?
Для этого используйте опцию командной строки -s.
ln -s [file] [soft-link-to-file]
Например:
ln -s test.txt test_soft_link.txt

Файл test_soft_link.txt является мягкой/символической ссылкой, что подтверждается голубым цветом текста.
Вопрос 3. Как заставить ln удалить существующие файлы с таким же именем в каталоге назначения?
По умолчанию ln не позволит вам создать ссылку, если в каталоге назначения уже существует файл с таким же именем.
![]()
Однако, если вы хотите, вы можете заставить ln игнорировать это поведение, используя -f .

Примечание: Вы можете использовать опцию командной строки -i , если хотите сделать весь процесс удаления интерактивным.
В4. Как заставить ln создавать резервную копию существующих файлов с таким же именем?
Если вы не хотите, чтобы ln удалял существующие файлы с таким же именем, вы можете заставить его создавать резервные копии этих файлов. Это можно сделать с помощью опции командной строки -b . Файлы резервных копий, созданные таким образом, будут содержать тильду (~) в конце своего имени.

В5. Как создавать ссылки в каталоге, отличном от текущего?
Конкретный каталог назначения (отличный от текущего) можно указать с помощью опции командной строки -t . Например:
ls test* | xargs ln -s -t /home/himanshu/Desktop/
Указанная выше команда создаст ссылки на все файлы test* (находящиеся в текущем каталоге) и поместит их в каталог Desktop.