Cum să găsiți și să ștergeți simbolurile rupte pe Linux

Nov 12, 2024
Linux
FatmAwati Achmad Zaenuri / Shutterstock

Legăturile simbolice de pe Linux sunt o caracteristică fantastică, dar ele pot deveni sparte și lăsate îndreptate spre nimic. Iată cum să localizați link-urile simbolice sparte, să le revizuiți și să le eliminați din sistemul dvs. dacă aveți nevoie.

Link-uri simbolice 101.

Link-uri simbolice , numit și "link-uri moi" și "symlinks", sunt o formă de comenzi rapide care pot indica fișierele și directoarele. Un symlink arată la fel ca un fișier sau un director obișnuit într-o fereastră de fișiere Manager. De asemenea, apare ca o intrare într-o listă de fișiere într-o fereastră terminală. Fișierul sau directorul la care punctele Symlink pot fi oriunde în arborele sistemului de fișiere.

De exemplu, să spunem că aveți un symlink în directorul de acasă numit "Dave-Link" care indică un fișier numit "Text-File.txt" situat în altă parte în arborele sistemului de fișiere. Comenzile pe care le utilizați pe symlink sunt aplicate automat la fișierul la care arată. Dacă încercați să utilizați pisică sau Mai puțin Pe symlink, veți vedea de fapt conținutul fișierului "Text-File.txt".

O instalare standard Linux conține multe symlink-uri. Chiar dacă nu creați singur, sistemul de operare le folosește. Rutinele de instalare a aplicațiilor utilizează adesea symlink-uri pentru a indica fișierele executabile. Când software-ul este actualizat, fișierul binar este înlocuit cu noua versiune și toate symlink-urile continuă să lucreze ca înainte, atâta timp cât numele noului fișier este același cu cel vechi.

Putem vedea cu ușurință câteva symlink-uri folosind Ls. în directorul rădăcină. Unele intrări sunt afișate într-o culoare diferită - pe noi Ubuntu 20.10. Mașină de testare, sunt afișați în albastru deschis.

Introducem următoarele:

  LS /  

Putem face o privire mai profundă prin utilizarea -l. (listare lungă). Introducem următoarea comandă pentru a ne uita la toate intrările "lib" și introducerea unică "bin":

 ls -l / lib * / bin 

La începutul fiecărei linii este un "L", care indică faptul că elementul este un symlink. Textul după "- & gt;" arată la ceea ce indică symlinkul. În exemplul nostru, obiectivele sunt toate directoare.

Permisiunile sunt enumerate ca citite, scriere și executate pentru proprietar, grup și altele. Acestea sunt intrări false implicite. Ele nu reflectă permisiunile reale ale obiectelor la care punctul de symlink. Este permisiunile din fișierul țintă sau directorul care iau prioritate și sunt onorați de sistemul de fișiere.

Brokenk symlinks.

Un symlink este spart (sau stânga) atunci când fișierul la care punctele IT este șters sau mutat într-o altă locație. Dacă rutina de dezinstalare a unei aplicații nu funcționează corect sau este întreruptă înainte de finalizarea acestuia, ați putea fi lăsată cu simboluri sparte.

Dacă cineva șterge manual un fișier fără să știi symlink-ul punct, acele symlink-uri nu vor mai funcționa. Ei vor fi ca semnele rutiere care indică un oraș care a fost buldozat.

Putem vedea cu ușurință acest comportament folosind un symlink numit "Bună ziua" în directorul curent. Introducem următoarele, folosind Ls. pentru a vedea:

 LS -L 

Acesta indică un program numit "HTG" într-un director numit "Bin". Dacă "executăm" symlinkul, execută programul pentru noi:

. / Bună ziua 

Acum putem verifica dacă acest lucru se întâmplă prin rularea programului direct:

 ../ bin / htg 

După cum era de așteptat, obținem același răspuns. Să ștergem fișierul programului:

 Rm ../bin/htg

Acum, când ne uităm la symlink, vedem că este listat în roșu, deoarece Linux știe că este spart. De asemenea, ne spune la ceea ce obișnuia să sublinieze, astfel încât să putem înlocui fișierul, să recompilați programul sau să facem tot ce este necesar pentru a repara symlink-ul.

Rețineți că, dacă încercăm să rulăm symlinkul, eroarea primăm referire la numele Symlink, mai degrabă decât numele programului la care punctele Symlink.

Introducem următoarele:

. / Bună ziua 

Găsirea seminkurilor sparte

Cele mai moderne versiuni ale găsi au XTYPE. (Tip extindere), care simplifică găsirea simbolurilor rupte . Vom folosi L. steag cu XTYPE. , să-i spuneți să caute linkuri. Folosind. găsi și XTYPE. după cum urmează, fără oricare din cealaltă tip Steaguri, Forte XTYPE. Pentru a reveni legăturile rupte:

 Găsiți. -XTYPE L 

Rularea comenzii în directorul de acasă de testare găsește destul de puține symlinkuri sparte. Rețineți că căutarea este recursivă în mod implicit, deci caută automat toate subdirectoarele.

Symlinkul "salut" pe care l-am rupt cu scopul este listat, așa cum ne-am așteptat. Unul dintre celelalte symlink-uri este legat de browserul Firefox, iar restul sunt asociate cu Snaps.

Dacă conduci ieșirea prin toaleta cu -l. (linii), putem număra liniile, care sunt aceleași ca și numărarea simbolurilor rupte.

Introducem următoarele:

 Găsiți. -XTYPE L | WC-L 

Suntem informați că avem 24 de seminkuri sparte care indică nimic.

Găsiți, revizuiți și apoi eliminați

Înainte de a vă grăbi și șterge toate symlink-urile sparte, uitați-vă prin rezultatele găsi comanda. Vedeți dacă există un motiv valid pentru oricare dintre simbolurile rupte.

Uneori, symlink ar putea fi problema, mai degrabă decât fișierul țintă. Dacă simbolul a fost creat incorect, aceasta ar putea să nu indice nimic, dar ținta reală este prezentă. Re-crearea symlinkului ar fi remedierea în acest caz.

Este, de asemenea, posibil ca o simbolink aparent rupte să fie folosită ca altceva, cum ar fi un indicator al unui blocaj de fișier sau al altui indicator Go / No Go. Firefox face acest lucru; Asta este primul symlink din lista noastră. Firefox nu este folosit pe mașina noastră de testare, totuși, deci este în siguranță pentru noi să o ștergem.

De asemenea, este posibil ca obiectivul să fie prezent periodic și acesta este comportamentul așteptat (și dorit) al software-ului respectiv. Poate că fișierul țintă este copiat de la o altă mașină sau cloud, își îndeplinește funcția și este apoi șters din nou, doar pentru a fi înlocuit cu un alt program în următorul ciclu.

Symlinkul spart ar putea fi, de asemenea, un simptom al unei instalații de software care a eșuat. În acest caz, în loc să ștergeți symlink, trebuie fie să o remediați manual sau să repetați instalarea.

Când ați rezolvat legăturile rupte, trebuie să păstrați, repetați comanda pentru a efectua căutarea. Symlink-urile fixe ar trebui apoi să fie absente din rezultatele căutării.

Pentru motivele de siguranță, este mai bine să vă limitați eliminarea Symlink în propriile directoare. Fiți extrem de atenți să executați aceste comenzi ca root sau pe directoarele de sistem.

Eliminarea simlinkurilor sparte

În -Exec. (Execute) opțiunea rulează comenzi pe găsi rezultatele cautarii. Vom folosi Rm. pentru a șterge fiecare symlink rupt. În {} șirul este înlocuit cu numele fiecărui symlink rupt cum este descoperit de fiecare găsi .

Trebuie să folosim un punct și virgulă ( ; ) Pentru a termina lista comenzilor pe care le dorim -Exec. a alerga. Vom folosi o backslash ( \ ) să "scape" punct și virgulă, așa că este tratată ca parte a găsi comanda, mai degraba decat ceva Bash. ar trebui să acționeze.

Introducem următoarele:

 Găsiți. -XTYPE L -Exec RM {} \; 

Suntem returnați la promptul de comandă fără nici un indiciu că sa întâmplat ceva. Pentru a verifica legăturile rupte au fost eliminate, repetăm ​​comanda pentru a le căuta, după cum urmează:

 Găsiți. -XTYPE L 

Nu există rezultate potrivite, ceea ce înseamnă că simbolurile rupte au fost îndepărtate.

Amintiți-vă să examinați mai întâi

Din nou, luați întotdeauna timp pentru a revizui o listă de symlink înainte de a executa comanda pentru a le șterge. Puteți evita ștergerea oricăror nu sunteți sigur că executați comanda pentru a le șterge în directoarele corespunzătoare.

De exemplu, de mai sus, am fi putut rula comanda în directorul ".SNAP" și apoi am îndepărtat manual symlinkul solitar "Hello". Acest lucru ar fi părăsit Firefox Lock Symlink neatinsă.


Linux - Cele mai populare articole

Cum să ucizi procesele zombie pe Linux

Linux Nov 25, 2024

FatmAwati Achmad Zaenuri / Shutterstock Programe care sunt slab scrise sau performante pot pleca prost procese zombie ascunzând în interiorul comp..


Ce este nou în Ubuntu 21.04 „hirsutism Hippo“

Linux Apr 22, 2025

Noua versiune nouă a Ubuntu 21.04. , Hirsute Hippo, a fost lansat pe 22 aprilie 2021. Este o versiune intermediară a distribuției populare Linux, cu doar nouă luni de spri..


KDE Connect vine în cele din urmă la iPhone

Linux Oct 26, 2025

KDE. Dacă căutați o modalitate ușoară de a face ca iPhone-ul să joace frumos cu dvs. KDE Desktop. , astăzi este ziua ta norocoasă, ca KDE Connect..


Ce este pop! _OS?

Linux Oct 20, 2025

Dacă ați auzit despre Pop! _OS. , ați fi văzut că oamenii se referă adesea la ea ca cea mai bună alternativă Windows sau distribuția ideală Linux pentru jocuri. Iat�..


Ubuntu 21.10 ajunge cu un desktop personalizat GNOME 40

Linux Oct 14, 2025

Ubuntu. Dacă sunteți un utilizator Ubuntu sau cineva care se gândește să încercați, astăzi este o zi bună. Canonic a lansat oficial Ubuntu 21.10 cu un desktop pe..


10 comenzi de bază Linux pentru începători

Linux Oct 13, 2025

Doar am început pe Linux? Făcându-vă confortabil cu linia de comandă este esențială. Dacă sunteți deja familiarizați cu utilitățile de linie de comandă, veți găsi că Linux ..


Cum să omori un proces Linux după numărul portului

Linux Oct 4, 2025

Pentru a ucide un proces Linux, aveți nevoie de ID -ul sau numele său. Dacă tot ce știți este portul pe care îl folosește, îl puteți ucide în continuare? Da, în mai multe moduri dife..


Cum să obțineți IP -ul public într -un script Linux Bash

Linux Nov 9, 2024

Veți avea nevoie de adresa dvs. IP externă dacă doriți să vă conectați de la distanță la computer. Găsirea manual este ușoară, dar iată cum să -ți găsești IT dintr -un script L..


Categorii