Linux команда ln с примерами практического применения

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы узнаете о команде Linux ln и ее практических применениях для создания жестких ссылок и символических ссылок. Практическое занятие посвящено назначению команды ln, созданию жестких ссылок и созданию символических ссылок. Вы поймете различия между этими двумя типами ссылок и их области применения. Практическое занятие содержит пошаговые инструкции и примеры, которые помогут вам овладеть командой ln и ее возможностями по управлению файлами и директориями в Linux.

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/BasicFileOperationsGroup -.-> linux/ln("Link Creating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-422760{{"Linux команда ln с примерами практического применения"}} linux/rm -.-> lab-422760{{"Linux команда ln с примерами практического применения"}} linux/ln -.-> lab-422760{{"Linux команда ln с примерами практического применения"}} linux/cat -.-> lab-422760{{"Linux команда ln с примерами практического применения"}} end

Понимание назначения команды ln

В этом шаге вы узнаете о назначении команды ln в Linux. Команда ln используется для создания ссылок, которые являются специальными файлами, указывающими на другие файлы или директории. Существуют два типа ссылок: жесткие ссылки и символические (мягкие) ссылки.

Жесткие ссылки создаются с помощью команды ln без дополнительных опций. Жесткие ссылки по сути являются копиями исходного файла, но они используют один и тот же inode (метаданные файла) и физическое место хранения. Это означает, что изменения в содержимом файла будут отражаться во всех жестких ссылках.

Для создания жесткой ссылки выполните следующую команду:

ln original_file hard_link_name

Пример вывода:

$ ln file1.txt file1_hardlink.txt

Символические ссылки, также известные как мягкие ссылки, создаются с помощью опции -s вместе с командой ln. Символические ссылки - это указатели на исходный файл или директорию, и они содержат путь к целевому объекту. В отличие от жестких ссылок, символические ссылки могут указывать на файлы или директории, находящиеся за пределами файловой системы.

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

ln -s original_file symbolic_link_name

Пример вывода:

$ ln -s file1.txt file1_symlink.txt

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

Создание жестких ссылок с использованием команды ln

В этом шаге вы узнаете, как создавать жесткие ссылки с использованием команды ln.

Сначала создадим примерный файл, который мы будем использовать для создания жестких ссылок:

touch file1.txt
echo "This is the original file." > file1.txt

Теперь создадим жесткую ссылку на file1.txt с использованием команды ln:

ln file1.txt file1_hardlink.txt

Команда ln без дополнительных опций создает жесткую ссылку. Это означает, что file1_hardlink.txt и file1.txt теперь используют один и тот же inode (метаданные файла) и физическое место хранения. Любые изменения, внесенные в один файл, будут отражаться в другом.

Проверим, создана ли жесткая ссылка правильно:

ls -l file1.txt file1_hardlink.txt

Пример вывода:

-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1.txt
-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1_hardlink.txt

Заметьте, что оба файла имеют один и тот же номер inode (число "2" во второй колонке), что указывает на то, что они являются жесткими ссылками на один и тот же файл.

Теперь внесем изменения в исходный файл и посмотрим, как это повлияет на жесткую ссылку:

echo "This is an updated file." > file1.txt
cat file1.txt file1_hardlink.txt

Пример вывода:

This is an updated file.
This is an updated file.

Как вы можете видеть, изменения, внесенные в file1.txt, отражаются в жесткой ссылке file1_hardlink.txt.

Жесткие ссылки полезны, когда вы хотите создать несколько ссылок на один и тот же файл, не расходуя дополнительное место на диске. Однако помните, что жесткие ссылки не могут охватывать границы файловой системы, и их нельзя создавать для директорий.

Создание символических ссылок с использованием команды ln

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

Сначала создадим еще один примерный файл, который мы будем использовать для создания символических ссылок:

touch file2.txt
echo "This is the second file." > file2.txt

Теперь создадим символическую ссылку на file2.txt с использованием команды ln с опцией -s:

ln -s file2.txt file2_symlink.txt

Опция -s сообщает команде ln создать символическую ссылку вместо жесткой ссылки.

Проверим, создана ли символическая ссылка правильно:

ls -l file2.txt file2_symlink.txt

Пример вывода:

-rw-r--r-- 1 labex labex 23 Apr 12 12:34 file2.txt
lrwxrwxrwx 1 labex labex  8 Apr 12 12:34 file2_symlink.txt -> file2.txt

Заметьте, что у символической ссылки file2_symlink.txt в начале прав есть "l", что указывает на то, что это символическая ссылка. Вывод также показывает, что file2_symlink.txt указывает на file2.txt.

В отличие от жестких ссылок, символические ссылки могут указывать на файлы или директории за пределами файловой системы. Докажем это, создав символическую ссылку на директорию:

mkdir dir1
ln -s dir1 dir1_symlink
ls -l dir1 dir1_symlink

Пример вывода:

drwxr-xr-x 2 labex labex 4096 Apr 12 12:34 dir1
lrwxrwxrwx 1 labex labex    5 Apr 12 12:34 dir1_symlink -> dir1

Как вы можете видеть, dir1_symlink - это символическая ссылка, которая указывает на директорию dir1.

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

Резюме

В этом практическом занятии вы узнали о назначении команды ln в Linux, которая используется для создания ссылок, указывающих на другие файлы или директории. Вы ознакомились с двумя типами ссылок: жесткими ссылками и символическими (мягкими) ссылками. Жесткие ссылки по сути являются копиями исходного файла, которые используют один и тот же inode и физическое место хранения, в то время как символические ссылки - это указатели на исходный файл или директорию и могут пересекать границы файловой системы. Вы также узнали, как создавать жесткие ссылки и символические ссылки с использованием команды ln.

Linux Commands Cheat Sheet