Як знайти і видалити Брокен Symlinks на Linux

Nov 12, 2024
Linux,
Fatmawati Achmad Zaenuri / Shutterstock

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

Символічні посилання 101

Символічні посилання , також називається "М'які посилання" та "Symlinks", - це форма ярликів, які можуть вказувати на файли та каталоги. Символ виглядає так само, як звичайний файл або каталог у вікні менеджера файлів. Він також відображається як запис у списку файлів у вікні терміналу. Файл або каталог, до якого точки Symlink можуть бути будь-де у дереві файлової системи.

Наприклад, скажімо, у вас є Symlink у вашому домашньому каталозі під назвою "Dave-Link", що вказує на файл під назвою "text-file.txt", розташований десь у дереві файлової системи. Команди, які ви використовуєте на SYMLINK, автоматично застосовуються до файлу, до якого він вказує. Якщо ви спробуєте використовувати кішка або менш На Symlink ви дійсно побачите вміст файлу "text-file.txt".

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

Ми можемо легко побачити деякі Symlinks за допомогою ls У кореневому каталозі. Деякі записи відображаються в іншому кольорі нашого Ubuntu 20.10 Тестова машина, вони відображаються в світло-блакитному кольорі.

Ми вводимо наступне:

  LS /  

Ми можемо зробити більш глибокий погляд, використовуючи -L (довгий список). Ми вводимо наступну команду, щоб подивитися на всі записи "Lib" та єдиного запису "BIN":

 LS -L / Lib * / bin 

На початку кожного рядка є "l,", яка вказує, що елемент є симпотичною компанією. Текст після "- & gt;" показує, що Symlink вказує. У нашому прикладі цілі є всі каталоги.

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

Розбиті симпики

Symlink зламана (або залишається вилученням), коли файл, на якому його точки видаляється або переміщується в інше місце. Якщо процедура видалення програми не працює належним чином, або переривається, перш ніж завершиться, ви можете залишити порушеними симпатіями.

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

Ми можемо легко побачити цю поведінку, використовуючи Symlink під назвою "Привіт" у поточному каталозі. Ми вводимо наступне, використовуючи ls щоб побачити його:

 LS -L 

Це вказує на програму "HTG" у каталозі, що називається "bin". Якщо ми "запустити" Symlink, він виконує програму для нас:

 ./ hello 

Тепер ми можемо перевірити, чи це те, що відбувається, за кермом програми безпосередньо:

 ../ bin / htg 

Як і очікувалося, ми отримуємо таку ж відповідь. Давайте видалити файл програми:

 RM ../bin/htg

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

Зверніть увагу, що якщо ми спробуємо запустити Symlink, помилка ми отримуємо посилання на ім'я Симлінка, а не назва програми, до якої точку Symlink.

Ми вводимо наступне:

 ./ hello 

Пошук розбитих Symlinks

Більшість сучасних версій знаходження мати xtype варіант (розширений тип), що спрощує пошук розбитих Symlinks . Ми будемо використовувати л прапор з xtype , щоб розповісти про пошук посилань. За допомогою знаходження і xtype Як випливає, без жодного іншого тип Прапори, сили xtype Щоб повернути розбиті посилання:

 Знайти. -xtype l 

Запуск команди в нашому тестовому домашньому каталозі знаходить досить небагато зламаних символів. Зауважте, що пошук за замовчуванням рекурсивний, тому він автоматично шукає всі підкаталоги.

"Привіт" Symlink Ми розбиваємось з метою, наведено, як ми очікували. Одна з інших симплів, пов'язана з браузером Firefox, а решта пов'язані з зніманням.

Якщо ми пропускаємо вихід через туалет з -L (Лінії) варіант, ми можемо розраховувати лінії, що таке ж, як підрахунок зламаних симпатій.

Ми вводимо наступне:

 Знайти. -xtype l | wc -l 

Ми поінформували, що ми маємо 24 порушені симпики, що вказують ні на що.

Знайти, перегляньте, а потім видалити

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

Іноді симпінка може бути проблемою, а не цільовим файлом. Якщо Symlink була створена неправильно, це може нічого не вказувати, але справжня ціль присутня. Повторне створення Symlink буде виправленням у цьому випадку.

Також можливо, що, мабуть, зламана симпійка використовується як щось інше, наприклад, індикатор блокування файлів або іншого індикатора GO / NO. Firefox робить це; Ось що є перша симпотизація у нашому списку. Однак Firefox не використовується на нашій тестовій машині, тому це безпечно для нас, щоб видалити його.

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

Розбита Symlink також може бути симптомом встановлення програмного забезпечення, який не вдалося. У цьому випадку, замість того, щоб видалити Symlink, ви повинні або вручну виправити його або повторити установку.

Коли ви зафіксували розбиті посилання, потрібно зберегти, повторіть команду, щоб виконати пошук. Потім фіксовані симпюди повинні бути відсутніми в результатах пошуку.

Заради безпеки, найкраще обмежити вашу симпенцію, щоб усі, щоб ваші власні каталоги. Будьте надзвичайно обережні, щоб запустити ці команди як корінь, або системні каталоги.

Видалення зламаних Symlinks

Точний -ECEC (Виконати) Опція запускає команди на знаходження Результати пошуку. Ми будемо використовувати рм Щоб видалити кожну зламану симулю. Точний {} рядок замінюється на ім'я кожної зламаної симпатії, оскільки кожен знайдений знаходження .

Ми повинні використовувати комолону ( ; ) Щоб припинити список команд, які ми хочемо -ECEC бігти. Ми будемо використовувати зворотний слеш ( \ T ) "уникнути" комолону, тому це трактується як частина знаходження команду, а не щось Занурювач повинні діяти.

Ми вводимо наступне:

 Знайти. -xtype l-execc rm {} 

Ми повернулися до командного рядка, без ознак того, що щось сталося. Щоб підтвердити, що розбиті посилання були видалені, ми повторюємо команду, щоб шукати їх, наступним чином:

 Знайти. -xtype l 

Немає ніяких відповідних результатів, що означає, що розбиті симпюди були видалені.

Спочатку не забувайте переглянути

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

Наприклад, вище, ми могли б запустити команду в каталозі ".snap", а потім вручну видалити самотню "Привіт" Symlink. Це було б залишити замком Firefox Symlink недоторканим.


Linux, - Найпопулярніші статті

Як використовувати обмежену оболонку, щоб обмежити, який користувач Linux може зробити

Linux, Mar 25, 2025

Fatmawati Achmad Zaenuri / Shutterstock Обмежена оболонка обмежує те, що може зробити обліковий запис к�..


Що нового в Ubuntu 21,04 «Hirsute Бегемот»

Linux, Apr 22, 2025

Новий випуск Ubuntu 21.04 , Hirsute Hippo, був випущений 22 квітня 2021 року. Це тимчасовий випуск популярного р..


6-Кращий Легкий Linux дистрибутиви

Linux, Jul 27, 2025

3DMI / Shutterstock.com Якщо ОС Windows або Mac комп'ютер старий і щосили, щоб не відставати, установка L..


Що нового в Linux Mint 20,2 «Ума»

Linux, Jul 8, 2025

Linux Mint, один з найбільш Розподілу популярної Linux , Випустила версію 20,2, на прізвисько «Ума». Він п�..


Як використовувати FSCK Command на Linux

Linux, Aug 18, 2025

Pixza Студія / Shutterstock Всі наші важливі дані сидить в файлової системі того чи іншого типу, ..


Як встановити Linux на M1 Mac з Apple кремнію

Linux, Nov 11, 2024

Внутрішня підтримка Linux для нової архітектури на базі Apple ще не готова, але ви можете запустити Linux на ..


10 Корисні приклади команди Linux rsync

Linux, Oct 24, 2025

Linux rsync Команда - це потужний інструмент копіювання файлів та синхронізацію папки. Ось десять пошире..


Як отримати свій публічний IP у сценарії Linux Bash

Linux, Nov 9, 2024

Вам знадобиться зовнішня IP -адреса, якщо ви хочете віддалено підключитися до комп’ютера. Знайти його вру�..


Категорії