Et link i Linux er en særlig fil, der henviser til en anden fil eller et andet bibliotek. På den måde kan en fil placeres flere steder på én gang. Når den oprindelige fil slettes, bevares linket til den. Det kan resultere i nedbrud og tilstopper generelt systemet.
Lad os starte med at forklare, hvordan man kontrollerer, at filen faktisk er et link. Det gøres nemt ved hjælp af ls-værktøjet
. Derefter ser vi på tre metoder til fjernelse, hver med sine egne særegenheder.
Ved hjælp af ls
er det praktisk at se oplysninger om filen. For at bruge værktøjet skal du give det indstillingen -l
og angive stien. Lad os som eksempel tage filen ~/symlinks/link_1:
$ ls -l ~/symlinks/link_1
Du kan tjekke et helt katalog for links:
$ ls -l ~/symlin
En fil, der ikke er brug for, er markeret med en karakteristisk pil efter navnet.
Kommandoen rm
kan bruges til at slette alle filer i Linux' filsystem, inklusive links. Det vil sige, at den er velegnet til vores opgave. Det er vigtigt at nævne her, at den oprindelige fil eller mappe ikke bliver påvirket af, at linket slettes.
Kør kommandoen i terminalen:
$ rm ~/symlinks/link_1
For at få detaljerede oplysninger om proceduren skal du også tilføje indstillingen -v
til kommandoen:
$ rm -v ~/symlinks/link_1
Derudover kan du tjekke, om linket er forsvundet fra mappen. Det gør du ved at bruge den tidligere beskrevne kommando ls
.
Nu ved du, hvordan du fjerner et symbolsk link i Linux.
Værktøjet unlink
er designet til at fjerne filer fra Linux' filsystem. Det behøver kun at angive stien til linket:
$ unlink ~/symlinks/link_1
Inden for rammerne af den aktuelle opgave fungerer rm og unlink næsten identisk. Lad os nu gå videre til den sidste metode.
Ved hjælp af find-kommandoen
kan du søge efter og slette links i en given mappe. Det betyder, at du ikke behøver at bruge ls
yderligere.
I modsætning til de to foregående muligheder har den ret avancerede funktioner, f.eks. indstilling af søgekriterier. Men syntaksen er heller ikke så enkel af den grund.
For at søge skal du angive en mappe og et par parametre:
$ find ~/symlinks/ -type l -print
Parameteren -type l er
nødvendig for kun at vælge symbolske links, -print
for at udskrive det fulde navn. Og ved hjælp af -maxdepth
kan du angive dybden af søgningen i indlejrede mapper. Hvis du angiver 1, vil søgningen kun blive udført på selve biblioteket uden vedhæftede filer:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Når der er mange links i mappen, kan man angive et søgemønster for find-kommandoen
. Lad os som eksempel tage en situation, hvor vi kun vil finde skjulte links med en sidste ændringsdato for højst 30 dage siden:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Der er tilføjet to kriterier:
-name
- søg efter navn
.-mtime
- efter ændringstidspunkt.Alle fundne links kan slettes i henhold til det angivne mønster. Til dette formål er -print
erstattet af -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
I slutningen af instruktionen skal vi se på søgning og sletning af brudte links, som ikke fører nogen steder hen, f.eks. efter sletning af den oprindelige fil eller mappe. Parameteren -xtype l er
velegnet til dette formål. -print
er ikke påkrævet for output:
$ find ~/broken_links/ -xtype l
Resultatet er, at alle ødelagte links vises i terminalen. Hvis du vil fjerne dem, skal du tilføje -delete
i slutningen af kommandoen:
$ find ~/broken_links/ -xtype l -delete
Dette afslutter instruktionerne til at slette et link i Linux.