Символическая ссылка, также известная как символическая ссылка или программная ссылка, представляет собой файл особого типа, указывающий на другой файл или каталог.

В этом руководстве вы узнаете, как использовать lnкоманду для создания символических ссылок.

В системах Linux/UNIX существует два типа ссылок:

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

Как использовать lnкоманду

lnэто утилита командной строки для создания ссылок между файлами. По умолчанию lnкоманда создает жесткие ссылки. Чтобы создать символическую ссылку, используйте опцию -s( ).--symbolic

Синтаксис lnкоманды для создания символических ссылок следующий:

ln -s [OPTIONS] FILE LINK
  • Если заданы оба параметра FILEи LINK, lnбудет создана ссылка из файла, указанного в качестве первого аргумента ( FILE), на файл, указанный в качестве второго аргумента ( LINK).
  • Если в качестве аргумента указан только один файл или вторым аргументом является точка ( .), lnбудет создана ссылка на этот файл в текущем рабочем каталоге . Имя символической ссылки будет таким же, как и имя файла, на который она указывает.

По умолчанию в случае успеха lnничего не выводится и возвращается ноль.

Создание символической ссылки на файл

Чтобы создать символическую ссылку на данный файл, откройте терминал и введите:

ln -s source_file symbolic_link

Замените source_fileна имя существующего файла, для которого вы хотите создать символическую ссылку, и symbolic_linkна имя символической ссылки.

Параметр symbolic_linkявляется необязательным. Если вы не укажете символическую ссылку, lnкоманда создаст новую ссылку в вашем текущем каталоге:

В следующем примере мы создаем символическую ссылку с именем my_link.txtна файл с именем my_file.txt:

ln -s my_file.txt my_link.txt

Чтобы убедиться, что символическая ссылка была успешно создана, используйте ls команду:

ls -l my_link.txt

Вывод будет выглядеть примерно так:

lrwxrwxrwx 1 www-php users  4 Nov  2 23:03  my_link.txt -> my_file.txt

Символ lпредставляет собой флаг типа файла, представляющий символическую ссылку. Символ ->показывает файл, на который указывает символическая ссылка.

Создание символических ссылок на каталог

Команда для создания символической ссылки на каталог такая же, как и при создании символической ссылки на файл. Укажите имя каталога в качестве первого параметра и символическую ссылку в качестве второго параметра.

Например, если вы хотите создать символическую ссылку из /mnt/my_drive/moviesкаталога в ~/my_moviesкаталог, который вы запустите:

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

Перезапись символических ссылок

Если вы попытаетесь создать символическую ссылку, которая уже существует , lnкоманда напечатает сообщение об ошибке.

ln -s my_file.txt my_link.txt

Чтобы перезаписать путь назначения символической ссылки, используйте параметр -f( --force).

ln -sf my_file.txt my_link.txt

Удаление символических ссылок

Чтобы удалить/удалить символические ссылки , используйте команду unlinkили rm.

Синтаксис unlink очень прост:

unlink symlink_to_remove

Удаление символической ссылки с помощью rm команды аналогично удалению файла:

rm symlink_to_remove

Независимо от того, какую команду вы используете, при удалении символической ссылки не добавляйте /косую черту в конце ее имени.

Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным) и должен быть удален.