Начини на плащане 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.