Символьне посилання (також зване символічним посиланням) - це тип файлу в Linux, який вказує на інший файл або папку на вашому комп'ютері. Символьні посилання схожі на ярлики в Windows.
Деякі люди називають символічні посилання "м'якими посиланнями" - типом посилань у системах Linux / UNIX - на відміну від "жорстких посилань".
Різниця між м'якою та жорсткою посиланнями
М'які посилання подібні до ярликів і можуть вказувати на інший файл або каталог у будь-якій файловій системі.
Жорсткі посилання - це також ярлики для файлів і папок, але жорстке посилання не можна створити для папки або файлу в іншій файловій системі.
Давайте розглянемо етапи створення та видалення символічного посилання. Ми також побачимо, що таке непрацюючі посилання, і як їх видалити.
Як створити Symlink
Синтаксис для створення символічного посилання:
ln -s
ln
- це команда посилання. В -s
прапор вказує , що посилання повинне бути м'якою. -s
також можна ввести як -symbolic
.
За замовчуванням ln
команда створює жорсткі посилання. Наступним аргументом є path to the file (or folder)
те, що ви хочете пов’язати. (Тобто файл або папка, для яких потрібно створити ярлик.)
І останній аргумент - це path to link
саме (ярлик).
Як створити посилання для файлу - приклад команди
ln -s /home/james/transactions.txt trans.txt
Після виконання цієї команди, ви зможете отримати доступ до /home/james/transactions.txt
з trans.txt
. Будь-яке внесення змін trans.txt
також буде відображено у вихідному файлі.
Зверніть увагу, що ця команда вище створить файл посилання trans.txt
у вашому поточному каталозі. Ви також можете створити зв’язаний файл у папці за посиланням:
ln -s /home/james/transactions.txt my-stuffs/trans.txt
У вашому поточному каталозі повинен бути каталог, який уже називається "my-stuffs" - якщо не, команда видасть помилку.
Як створити Symlink для папки - приклад команди
Як і вище, ми б використовували:
ln -s /home/james james
Це дозволить створити папку із символічними посиланнями під назвою "james", яка міститиме вміст /home/james
. Будь-які зміни у цій пов’язаній папці також вплинуть на вихідну папку.
Як видалити символічне посилання
Перш ніж ви захочете видалити символічне посилання, ви можете підтвердити, що файл або папка є символічним посиланням, щоб ви не втручались у свої файли.
Один із способів зробити це:
ls -l
Запуск цієї команди на вашому терміналі відобразить властивості файлу. В результаті, якщо першим символом є мала буква L ('l'), це означає, що файл / папка є символічним посиланням.
Ви також побачите стрілку (->) в кінці, яка вказує на файл / папку, на яку вказує simlink.
Існує два методи видалення символічного посилання:
Як використовувати Від'єднання для видалення Symlink
Синтаксис:
unlink
Це видаляє символічне посилання, якщо процес пройшов успішно.
Навіть якщо символічне посилання має форму папки, не додайте '/', оскільки Linux вважатиме, що це каталог і unlink
не може видаляти каталоги.
Як використовувати rm для видалення Symlink
Як ми вже бачили, символічне посилання - це лише інший файл або папка, що вказує на оригінальний файл або папку. Щоб видалити ці стосунки, ви можете видалити зв’язаний файл.
Отже, синтаксис такий:
rm
Наприклад:
rm trans.txt rm james
Зауважте, що при спробі зробити rm james/
це призведе до помилки, оскільки Linux вважатиме, що 'james /' є каталогом, який потребує інших опцій, таких як r
і f
. Але це не те, що ми хочемо. Символьне посилання може бути папкою, але нас стосується лише назви.
Основна перевага rm
over unlink
- це те, що ви можете видаляти кілька символічних посилань одночасно, як це можна робити з файлами.
Як знайти та видалити непрацюючі посилання
Поламані посилання виникають, коли файл або папка, символічне посилання вказує на шлях зміни або видаляється.
Наприклад, якщо 'транзакція.txt' переміщується з /home/james
до /home/james/personal
, посилання 'trans.txt' стає недійсним. Кожна спроба отримати доступ до файлу призведе до помилки "Немає такого файлу або каталогу". Це тому, що посилання не має власного вмісту.
Виявивши непрацюючі посилання, ви можете легко видалити файл. Найпростіший спосіб знайти непрацюючі символічні посилання:
find /home/james -xtype l
Тут буде перераховано всі непрацюючі символічні посилання в james
каталозі - від файлів до каталогів до підкаталогів.
Передача -delete
опції видалить їх приблизно так:
find /home/james -xtype l -delete
Підведенню
Символічні посилання є цікавою особливістю систем Linux і UNIX.
Ви можете створити легкодоступні символічні посилання для посилання на файл або папку, до яких інакше було б не зручно отримати доступ. Попрацювавши, ви зрозумієте, як вони працюють на інтуїтивному рівні, і вони зроблять вас набагато ефективнішими в управлінні файловими системами.