Підручник із Symlink у Linux - Як створити та видалити символічне посилання

Символьне посилання (також зване символічним посиланням) - це тип файлу в 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. Але це не те, що ми хочемо. Символьне посилання може бути папкою, але нас стосується лише назви.

Основна перевага rmover unlink- це те, що ви можете видаляти кілька символічних посилань одночасно, як це можна робити з файлами.

Як знайти та видалити непрацюючі посилання

Поламані посилання виникають, коли файл або папка, символічне посилання вказує на шлях зміни або видаляється.

Наприклад, якщо 'транзакція.txt' переміщується з /home/jamesдо /home/james/personal, посилання 'trans.txt' стає недійсним. Кожна спроба отримати доступ до файлу призведе до помилки "Немає такого файлу або каталогу". Це тому, що посилання не має власного вмісту.

Виявивши непрацюючі посилання, ви можете легко видалити файл. Найпростіший спосіб знайти непрацюючі символічні посилання:

find /home/james -xtype l 

Тут буде перераховано всі непрацюючі символічні посилання в jamesкаталозі - від файлів до каталогів до підкаталогів.

Передача -deleteопції видалить їх приблизно так:

find /home/james -xtype l -delete 

Підведенню

Символічні посилання є цікавою особливістю систем Linux і UNIX.

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