Android

Cum se elimină (șterge) legăturile simbolice din linux

Cum sa te lasi de Fumat | 5 Metode de la Psiholog

Cum sa te lasi de Fumat | 5 Metode de la Psiholog

Cuprins:

Anonim

O legătură simbolică, cunoscută și sub numele de simbol, este un tip special de fișier care indică un alt fișier sau director. Este ceva ca o scurtătură în Windows. Un simbol de legătură poate indica un fișier sau un director de pe același sistem sau un alt sistem de fișiere sau partiție.

În acest ghid, vă vom arăta cum puteți elimina (șterge) legăturile simbolice din sistemele Linux / UNIX folosind comenzile rm , unlink și find .

Înainte de a începe

Pentru a elimina un simbol, trebuie să aveți permisiuni de scriere în directorul care conține simbolul. În caz contrar, veți primi eroare „Operare nepermisă”.

Când eliminați un simbol, fișierul pe care îl indică nu este afectat.

Folosiți comanda ls -l pentru a verifica dacă un fișier dat este o legătură simbolică și pentru a găsi fișierul sau directorul la care se leagă link-ul simbolic.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Primul caracter „l”, indică faptul că fișierul este un simbol. Simbolul „->” arată fișierul la care este indicat link-ul.

Eliminați legăturile simbolice cu rm

Comanda rm elimină fișierele și directoarele date.

Pentru a șterge un simbol, invocați comanda rm urmată de numele de legătură simbolică ca argument:

rm symlink_name

La succes, comanda iese cu zero și nu afișează nicio ieșire.

Cu rm puteți șterge mai multe linkuri simbolice simultan. Pentru a face acest lucru, treceți numele de simboluri ca argumente, separate prin spațiu:

rm symlink1 symlink2

Pentru a vă solicita înainte de a elimina simbolul, utilizați opțiunea -i :

rm -i symlink_name

Pentru a confirma tipul y și apăsați Enter .

rm: remove symbolic link 'symlink_name'?

Dacă legătura simbolică indică un director, nu adăugați la capăt / glisierul final. În caz contrar, veți primi o eroare:

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Dacă numele argumentului se termină cu / , comanda rm presupune că fișierul este un director. Eroarea se întâmplă deoarece, atunci când este utilizată fără opțiunea -d sau -r , rm nu poate șterge directoarele.

Pentru a fi de partea sigură, niciodată -r opțiune atunci când eliminați legături simbolice cu rm . De exemplu, dacă tastați:

rm -f symlink_to_dir/

Conținutul directorului țintă va fi șters.

Eliminați legăturile simbolice cu unlink

Comanda de unlink șterge un fișier dat. Spre deosebire de rm , unlink acceptă un singur argument.

Pentru a șterge o legătură simbolică, rulați comanda de unlink urmată de numele de link-ul ca argument:

unlink symlink_name

Dacă comanda se execută cu succes, nu afișează nicio ieșire.

Nu adăugați / glisiera finală la sfârșitul numelui de link, deoarece unlink nu poate elimina directoarele.

Găsiți și ștergeți legături simbolice rupte

Pentru a găsi toate legăturile simbolice rupte dintr-un director dat, rulați următoarea comandă:

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

Comanda va enumera toate legăturile stricate din director și subdirectoarele sale.

find /path/to/directory -maxdepth 1 -xtype l

/path/to/directory/symlink1

După ce găsiți simbolurile stricate, puteți să le eliminați manual cu rm sau unlink sau să folosiți opțiunea- -delete din comanda find :

find /path/to/directory -xtype l -delete

Concluzie

Pentru a elimina o legătură simbolică, utilizați fie comanda rm fie unlink urmată de numele simbolului ca simbol. Atunci când eliminați o legătură simbolică care indică un director, nu adăugați o linie oblică la numele de link-ul de simbol.

rm deblocați găsi terminalul