Sådan Find og Slet Broken symlinks på Linux

Nov 12, 2024
Linux
FATMAWATI ACHMAD ZAENURI / SHUTTERSTOCK

De symbolske links på Linux er en fantastisk funktion, men de kan blive brudt og venstre peger på ingenting. Sådan finder du brudte symbolske links, gennemgå dem, og fjern dem fra dit system, hvis du har brug for det.

Symboliske links 101.

Symbolske links. , også kaldet "bløde links" og "symlinks", er en form for genveje, der kan pege på filer og mapper. Et symlink ser ud som en regelmæssig fil eller en mappe i et filhåndteringsvindue. Det vises også som en post i en fil notering i et terminal vindue. Den fil eller mappe, som symlinkpunkterne kan være overalt i filsystemet.

Lad os sige, at du har en symlink i dit hjemmekatalog kaldet "Dave-link", der peger på en fil, der hedder "Text-File.txt", der er placeret et andet sted i filsystemet. Kommandoer, du bruger på symlingen, anvendes automatisk på den fil, den peger på. Hvis du forsøger at bruge kat eller mindre På Symlink, vil du faktisk se indholdet af filen "Text-File.txt".

En standard Linux-installation indeholder mange symlinks. Selvom du ikke opretter nogen selv, bruger operativsystemet dem. Applikationsinstallationsrutiner bruger ofte symlinks til at pege på Executables-filer. Når softwaren opdateres, erstattes den binære fil med den nye version, og alle symlinks fortsætter med at arbejde som før, så længe den nye fils navn er den samme som den gamle.

Vi kan nemt se nogle symlinks ved at bruge ls. i rodmappen. Nogle af posterne vises i en anden farve på vores Ubuntu 20.10. Testmaskine, de vises i lyseblå.

Vi skriver følgende:

  ls /  

Vi kan tage et dybere udseende ved at bruge -L. (lang liste) mulighed. Vi skriver følgende kommando for at se på alle "lib" poster og den enkelte "bin" post:

 LS -L / lib * / bin 

Ved starten af ​​hver linje er en "l", som angiver varen er en symlink. Teksten efter "- & gt;" viser på, hvad symlinjen peger på. I vores eksempel er målene alle mapper.

Tilladelserne er angivet som læst, skrive og udføre for ejeren, gruppen og andre. Disse er standard falske poster. De afspejler ikke de faktiske tilladelser på de objekter, hvor symlinks point. Det er tilladelserne på målfilen eller mappen, der har forrang og er hædret af filsystemet.

Brudte symlinks.

Et symlink er brudt (eller venstre dangling), når filen, hvormed it-point er slettet eller flyttet til et andet sted. Hvis en applikations afinstallationsrutine ikke fungerer korrekt, eller afbrydes, før den er færdig, kan du blive efterladt med brudte symlinks.

Hvis nogen manuelt sletter en fil uden at kende symlinks peger på det, vil disse symlinks ikke længere arbejde. De vil være som vejskilte peger på en by, der er blevet bulldozed.

Vi kan nemt se denne adfærd ved hjælp af en symlink kaldet "Hej" i den nuværende mappe. Vi skriver følgende, ved hjælp af ls. at se det:

 LS -L 

Det peger på et program kaldet "HTG" i en mappe kaldet "bin". Hvis vi "kører" symlinket, udfører det programmet for os:

 ./ Hej 

Vi kan nu kontrollere, om dette er, hvad der sker ved at køre programmet direkte:

 ../ BIN / HTG 

Som forventet får vi det samme svar. Lad os slette programfilen:

 RM ../BIN/HTG

Nu, når vi ser på symlinket, ser vi, at det er opført i rødt, fordi Linux ved, at det er brudt. Det fortæller os også på, hvad det plejede at pege på, så vi kan erstatte filen, genkompilere programmet eller gøre alt, hvad der er nødvendigt for at reparere symlinket.

Bemærk, at hvis vi forsøger at køre symlinket, refererer den fejl, vi får referencer symlinknavnet, snarere end navnet på det program, som symlinkpunkterne på.

Vi skriver følgende:

 ./ Hej 

Finde brudte symlinks.

Mest moderne versioner af Find har xType. (udvidet type) indstilling, som forenkler at finde brudte symlinks . Vi bruger L. flag med xType. , for at fortælle det at søge efter links. Ved brug af Find og xType. som følger uden nogen af ​​de andre type Flags, Forces. xType. At returnere brudte links:

 Find. -xtype l 

At køre kommandoen i vores test Home Directory finder ganske få brudte symlinks. Bemærk, at søgningen er rekursiv som standard, så den søger automatisk alle underkornsektorer.

"Hej" Symlink vi brød på formålet er opført, som vi forventede. En af de andre symlinks er relateret til Firefox-browseren, og resten er forbundet med snaps.

Hvis vi rør udgangen gennem Toilet med -L. (linjer) mulighed, vi kan tælle linjerne, hvilket er det samme som at tælle de ødelagte symlinks.

Vi skriver følgende:

 Find. -xtype l | WC -L 

Vi er informeret om, at vi har 24 brudte symlinks, der peger på ingenting.

Find, anmelde, og derefter fjerne

Før du skynder dig ind og sletter alle brudte symlinks, skal du se gennem resultaterne af Find kommando. Se om der er en gyldig grund til nogen af ​​de ødelagte symlinks.

Nogle gange kan symlingen være problemet, snarere end målfilen. Hvis symlinket blev skabt forkert, kan det kun pege på noget, men det virkelige mål er til stede. Genoprettelse af symlinket ville være retten i så fald.

Det er også muligt, at en tilsyneladende brudt symlink bruges som noget andet, som f.eks. En indikator for en fillås eller anden GO / NO GO-indikator. Firefox gør dette; Det er det første symlink i vores liste er. Firefox bruges dog ikke på vores testmaskine, så det er sikkert for os at slette det.

Det er også muligt, at målet kun er til stede periodisk, og dette er den forventede (og ønskede) adfærd for den pågældende software. Måske er målfilen kopieret fra en anden maskine eller skyen, den udfører sin funktion og slettes derefter igen, kun for at blive erstattet af et andet program i den næste cyklus.

Det ødelagte symlink kan også være et symptom på en softwareinstallation, der mislykkedes. I så fald skal du i stedet for at slette symlinket enten manuelt rette den eller gentage installationen.

Når du har lagt de brudte links, du skal holde, gentag kommandoen for at udføre søgningen. De faste symlinks skal så være fraværende fra søgeresultaterne.

For sikkerhedens skyld er det bedst at begrænse dine symlink-flytninger til dine egne mapper. Vær ekstremt forsigtig med at køre disse kommandoer som rod, eller på systemkataloger.

Fjernelse af brudte symlinks.

Det -Exec. (Execute) Option kører kommandoer på Find Søgeresultater. Vi skal bruge rm. at slette hver brudt symlink. Det {} streng erstattes med navnet på hver brudt symlink, som hver enkelt er opdaget af Find .

Vi skal bruge en semikolon ( ; ) At afslutte listen over kommandoer, vi ønsker -Exec. at løbe. Vi bruger en backslash ( \ ) at "undslippe" semikolonen, så det behandles som en del af Find kommando, snarere end noget Bash. bør handle på.

Vi skriver følgende:

 Find. -xtype l -Exec rm {} \; 

Vi vender tilbage til kommandoprompten uden tegn på, at der er sket noget. For at bekræfte de brudte links er blevet fjernet, gentager vi kommandoen for at kigge efter dem som følger:

 Find. -xtype l 

Der er ikke nogen matchende resultater, hvilket betyder, at de ødelagte symlinks er blevet fjernet.

Husk at gennemgå først

Igen tager du altid tid til at gennemgå en liste over symlinks, før du kører kommandoen for at slette dem. Du kan undgå at slette nogen, du er usikker på ved at køre kommandoen for at slette dem i de relevante mapper.

For eksempel ovenfor kunne vi have kørt kommandoen i ".snap" -mappen og derefter manuelt fjernet den ensomme "Hej" Symlink. Dette ville have forladt Firefox Lock Symlink uberørt.


Linux - Mest populære artikler

Sådan gendannes slettede filer på Linux med TestDisk

Linux Nov 18, 2024

FATMAWATI ACHMAD ZAENURI / SHUTTERSTOCK Har du nogensinde slettet en fil og straks beklagede det? Du har brug for det tilbage, og hurtigt! Men hvad hvis filen ..


Sådan bruger du DB Browser til SQLITE på Linux

Linux Dec 16, 2024

FATMAWATI ACHMAD ZAENURI / SHUTTERSTOCK DB Browser til SQLITE Giver dig mulighed for at se og redigere SQLITE databaser på Linux. Du kan designe, opr..


Sådan opdateres Ubuntu Linux

Linux Aug 27, 2025

tomeqs / shutterstock.com. Har du brug for det nyeste og bedste i Ubuntu-software? Du behøver ikke at være en Linux Pro. Læs videre for at opdage, hvordan..


Hvad er nyt i Elementary OS 6 "Odin"

Linux Aug 14, 2025

elementær, Inc. Der er mange Linux-distributioner (distributioner), at folk hævder er gode erstatninger for Windows eller MacOS. Men der er få, der har at..


Native spil på Linux kan være døende, og det er okay

Linux Sep 27, 2025

DC Studio / Shutterstock.com Det Dampdæk , annonceret i august 2021, har Linux Gaming Circles, der taler om fremtiden for Gaming på Linux. Dækket..


Sådan installeres Linux på en M1 Mac med Apple Silicon

Linux Nov 11, 2024

Indfødt Linux Support til Apples nye armbaserede arkitektur er endnu ikke klar, men du kan køre Linux på en M1. , M1 PRO, eller M1 MAX ved hjælp af a Virtual Machine. ..


Hvordan man dræber en Linux -proces efter portnummer

Linux Oct 4, 2025

For at dræbe en Linux -proces har du brug for dens ID eller dens navn. Hvis alt hvad du ved er den port, den bruger, kan du stadig dræbe den? Ja, på flere forskellige måder. Dræbende..


Sådan integreres applikationer og scripts til et Linux -skrivebord

Linux Oct 10, 2025

På Linux integreres en applikation uden en desktop -fil ikke med dit desktopmiljø. De fleste applikationer giver en, men lejlighedsvis skal du oprette en. Det er ret let, bare følg disse tri..


Kategorier