O legătură în Linux este un fișier special care se referă la un alt fișier sau director. În acest fel, un fișier poate fi plasat în mai multe locuri în același timp. Atunci când fișierul original este șters, legătura este păstrată. Acest lucru poate duce la blocaje și, în general, înfundă sistemul.
Pentru început, să explicăm metoda de verificare a faptului că fișierul este de fapt o legătură. Acest lucru se face în mod convenabil cu ajutorul utilitarului ls
. După aceea, să ne uităm la trei metode de eliminare, fiecare cu particularitățile sale.
Cu ajutorul lui ls
este convenabil să vedeți informații despre fișier. Pentru a utiliza utilitarul, dați-i opțiunea -l
și specificați calea. Ca exemplu, să luăm fișierul ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Puteți verifica un întreg catalog pentru legături:
$ ls -l ~/symlin
Un fișier care nu este necesar este marcat cu o săgeată caracteristică după numele său.
Comanda rm
poate fi utilizată pentru a șterge orice fișier din sistemul de fișiere Linux, inclusiv link-urile. Adică, este potrivită pentru sarcina noastră. Este important să menționăm aici că fișierul sau directorul original nu va fi afectat ca urmare a ștergerii legăturii.
În terminal, executați comanda:
$ rm ~/symlinks/link_1
De asemenea, pentru a obține informații detaliate despre procedură, adăugați opțiunea -v
la comandă:
$ rm -v ~/symlinks/link_1
În plus, puteți verifica dacă legătura a dispărut din director. Pentru a face acest lucru, utilizați comanda ls
descrisă anterior.
Acum știți cum să eliminați o legătură simbolică Linux.
Utilitarul unlink
este conceput pentru a elimina fișiere din sistemul de fișiere Linux. Acesta trebuie doar să specifice calea către link:
$ unlink ~/symlinks/link_1
În cadrul sarcinii la îndemână, rm și unlink funcționează aproape identic. Acum să trecem la ultima metodă.
Cu ajutorul comenzii find
puteți căuta și șterge link-uri într-un anumit director. Acest lucru înseamnă că nu trebuie să utilizați ls
în plus.
Spre deosebire de cele două opțiuni anterioare, aceasta are caracteristici destul de avansate, de exemplu, setarea criteriilor de căutare. Dar sintaxa nu este atât de simplă nici din acest motiv.
Pentru a căuta, trebuie să specificați un director și câțiva parametri:
$ find ~/symlinks/ -type l -print
Parametrul -type l
este necesar pentru a selecta numai legăturile simbolice, -print
pentru a emite numele complet. Și cu ajutorul parametrului -maxdepth
puteți specifica adâncimea de căutare prin directoare imbricate. Dacă specificați 1, căutarea va fi efectuată numai pe directorul în sine, fără anexe:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Odată ce există multe legături în director, puteți specifica un model de căutare pentru comanda find
. Ca exemplu, să luăm o situație în care dorim să găsim numai legăturile ascunse cu o dată a ultimei modificări nu mai mare de 30 de zile:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Au fost adăugate două criterii:
-name
- căutare după nume
.-mtime
- după ora modificării.Toate legăturile găsite pot fi șterse în conformitate cu modelul specificat. În acest scop, -print
este înlocuit cu -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
La sfârșitul instrucțiunii să ne ocupăm de căutarea și ștergerea legăturilor întrerupte care nu duc nicăieri, de exemplu, după ștergerea fișierului sau directorului original. Parametrul -xtype l
este potrivit pentru acest scop. -print
nu este necesar pentru ieșire:
$ find ~/broken_links/ -xtype l
Ca rezultat, toate legăturile întrerupte vor fi afișate în terminal. Pentru a le elimina, adăugați -delete
la sfârșitul comenzii:
$ find ~/broken_links/ -xtype l -delete
Acest lucru completează instrucțiunile pentru ștergerea unei legături în Linux.