Способи оплати Abuse

Видаляємо посилання в Linux

10.04.2022, 01:05

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

Як видалити посилання

Для початку пояснимо спосіб перевірки, що файл насправді є посиланням. Це зручно робити за допомогою утиліти ls. Після розглянемо три способи видалення, кожен з яких має свої особливості.

Переконуємо, що це посилання

За допомогою ls зручно дивитися інформацію про файл. Для використання утиліти задайте їй опцію -l і вкажіть шлях. Як приклад візьмемо файл ~/symlinks/link_1:

$ ls -l ~/symlinks/link_1

Видаляємо посилання в Linux

Ви можете перевірити цілий каталог на наявність посилань:

$ ls -l ~/symlin

Видаляємо посилання в Linux

Файл, який не потрібен, позначений характерною стрілочкою після його назви.

Використовуємо Rm

За допомогою команди rm можна видаляти будь-які файли у файловій системі Linux, зокрема й посилання. Тобто, вона підходить для нашого завдання. Тут важливо згадати, що в результаті видалення посилання оригінального файлу або директорії не торкнуться.

У терміналі виконайте команду:

$ rm ~/symlinks/link_1

Видаляємо посилання в Linux

Також щоб отримати детальну інформацію про процедуру, додайте команді опцію -v:

$ rm -v ~/symlinks/link_1

Видаляємо посилання в Linux

Додатково можна перевірити, чи зникло посилання з директорії. Для цього використовуйте описану раніше команду ls.

Видаляємо посилання в Linux

Тепер ви знаєте як видалити символічне посилання Linux.

Використовуємо UNLINK

Утиліта unlink призначається для видалення файлів із файлової системи Linux. Їй достатньо вказати шлях до посилання:

$ unlink ~/symlinks/link_1

Видаляємо посилання в Linux

У рамках поставленого завдання rm і unlink працюють практично однаково. А тепер перейдемо до останнього способу.

Використовуємо Find

За допомогою команди find можна шукати і видаляти посилання в заданій директорії. А отже, не потрібне додаткове використання ls.

Видаляємо посилання в Linux

На відміну від двох попередніх варіантів, у неї досить просунуті можливості, наприклад, встановлення критеріїв пошуку. Але й синтаксис із цієї причини не такий простий.

Для пошуку потрібно вказати каталог і кілька параметрів:

$ find ~/symlinks/ -type l -print

Видаляємо посилання в Linux

Параметр -type l потрібен для відбору тільки символічних посилань, -print для виведення повного імені. А за допомогою -maxdepth можна задати глибину пошуку за вкладеними каталогами. Якщо вказати 1, то пошук буде йти тільки по самому каталогу, без вкладень:

$ find ~/symlinks/ -maxdepth 1 -type l -print

Видаляємо посилання в Linux

Щойно посилань у директорії буде багато, ви можете задати шаблон пошуку для команди find. Як приклад візьмемо ситуацію, коли потрібно відшукати тільки приховані посилання з датою останньої зміни не більше 30 днів тому:

$ find ~/data/ -type l -name ".*" -mtime -30 -print

Видаляємо посилання в Linux

Було додано два критерії:

  • -name - пошук за іменем.
  • -mtime - за часом модифікації.

За заданим шаблоном усі знайдені посилання можна видалити. Для цього -print замінюється на -delete:

$ find ~/data/ -type l -name ".*" -mtime -30 -delete

Видаляємо посилання в Linux

Наприкінці інструкції розберемося з пошуком і видаленням битих посилань, які нікуди не ведуть, наприклад, після видалення оригінального файлу або директорії. Для такої мети підійде параметр -xtype l. При цьому -print для виведення не потрібен:

$ find ~/broken_links/ -xtype l

Видаляємо посилання в Linux

У результаті всі биті посилання відобразяться в терміналі. Для їх видалення в кінці команди додайте -delete:

$ find ~/broken_links/ -xtype l -delete

Видаляємо посилання в Linux

На цьому інструкцію з видалення посилання в Linux завершено.