En lenke i Linux er en spesiell fil som refererer til en annen fil eller katalog. På denne måten kan en fil plasseres på flere steder samtidig. Når den opprinnelige filen slettes, beholdes lenken til den. Dette kan føre til krasj og til at systemet generelt sett blir tilstoppet.
Til å begynne med skal vi forklare metoden for å sjekke at filen faktisk er en lenke. Dette gjøres enkelt ved hjelp av ls-verktøyet
. Etter det, la oss se på tre metoder for fjerning, hver med sine egne særegenheter.
Ved hjelp av ls
er det praktisk å se informasjon om filen. For å bruke verktøyet, gi det -l-alternativet
og spesifiser banen. La oss ta filen ~/symlinks/link_1
som eksempel:
$ ls -l ~/symlinks/link_1
Du kan sjekke en hel katalog for lenker:
$ ls -l ~/symlin
En fil som ikke er nødvendig, er merket med en karakteristisk pil etter navnet.
Kommandoen rm
kan brukes til å slette alle filer i Linux-filsystemet, inkludert lenker. Det vil si at den egner seg for vår oppgave. Det er viktig å nevne at den opprinnelige filen eller katalogen ikke vil bli påvirket av at lenken slettes.
Kjør kommandoen i terminalen:
$ rm ~/symlinks/link_1
For å få detaljert informasjon om prosedyren, kan du legge til alternativet -v
i kommandoen:
$ rm -v ~/symlinks/link_1
I tillegg kan du sjekke om lenken har forsvunnet fra katalogen. For å gjøre dette bruker du den tidligere beskrevne kommandoen ls
.
Nå vet du hvordan du fjerner en symbolsk lenke i Linux.
Verktøyet unlink
er utviklet for å fjerne filer fra Linux-filsystemet. Det trenger bare å angi stien til lenken:
$ unlink ~/symlinks/link_1
Innenfor rammene av den aktuelle oppgaven fungerer rm og unlink nesten identisk. La oss nå gå videre til den siste metoden.
Ved hjelp av find-kommandoen
kan du søke etter og slette lenker i en gitt katalog. Dette betyr at du ikke trenger å bruke ls
i tillegg.
I motsetning til de to foregående alternativene har den ganske avanserte funksjoner, for eksempel å angi søkekriterier. Men syntaksen er ikke så enkel av denne grunn heller.
For å søke må du spesifisere en katalog og noen få parametere:
$ find ~/symlinks/ -type l -print
Parameteren -type l er
nødvendig for å velge bare symbolske lenker, -print
for å skrive ut det fulle navnet. Og ved hjelp av -maxdepth
kan du spesifisere dybden på søket etter nestede kataloger. Hvis du angir 1, vil søket bare bli utført på selve katalogen, uten vedlegg:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Når det er mange lenker i katalogen, kan du spesifisere et søkemønster for find-kommandoen
. La oss ta et eksempel der vi bare ønsker å finne skjulte lenker med en dato for siste endring som ikke er mer enn 30 dager gammel:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
To kriterier er lagt til:
-name
- søk etter navn
.-mtime
- etter endringstidspunkt.Alle lenker som blir funnet, kan slettes i henhold til det angitte mønsteret. For dette formålet er -print
erstattet av -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
På slutten av instruksjonen skal vi ta for oss søk og sletting av ødelagte lenker som ikke fører noe sted, for eksempel etter sletting av den opprinnelige filen eller katalogen. Parameteren -xtype l er
egnet for dette formålet. -print
er ikke nødvendig for utdata:
$ find ~/broken_links/ -xtype l
Resultatet er at alle ødelagte lenker vises i terminalen. For å fjerne dem legger du til -delete
på slutten av kommandoen:
$ find ~/broken_links/ -xtype l -delete
Dette fullfører instruksjonene for å slette en lenke i Linux.