Symlink Tutorial i Linux - Hvordan lage og fjerne en symbolsk lenke
En symlink (også kalt en symbolsk kobling) er en filtype i Linux som peker til en annen fil eller en mappe på datamaskinen din. Symlinker ligner snarveier i Windows.
Noen mennesker kaller symlenker for "myke lenker" - en type lenke i Linux / UNIX-systemer - i motsetning til "harde lenker."
Forskjellen mellom en myk lenke og en hard lenke
Myke lenker ligner snarveier, og kan peke til en annen fil eller katalog i hvilket som helst filsystem.
Harde lenker er også snarveier for filer og mapper, men en hard lenke kan ikke opprettes for en mappe eller fil i et annet filsystem.
La oss se på trinnene som er involvert i å opprette og fjerne en symlink. Vi ser også hva ødelagte lenker er, og hvordan vi sletter dem.
Hvordan lage en Symlink
Syntaksen for å lage en symlink er:
ln -s
ln
er koblingskommandoen. De -s
flagget angir at koblingen bør være myk. -s
kan også legges inn som -symbolic
.
Som standard ln
oppretter kommandoen harde lenker. Det neste argumentet er path to the file (or folder)
at du vil koble til. (Det vil si filen eller mappen du vil lage en snarvei for.)
Og det siste argumentet er path to link
selve (snarveien).
Hvordan lage en symlink for en fil - Eksempel på kommando
ln -s /home/james/transactions.txt trans.txt
Etter å ha kjørt denne kommandoen, vil du kunne få tilgang til /home/james/transactions.txt
med trans.txt
. Eventuelle endringer i trans.txt
vil også gjenspeiles i originalfilen.
Merk at denne kommandoen ovenfor vil opprette koblingsfilen trans.txt
i din nåværende katalog. Du kan også opprette en koblet fil i en mappe lenke dette:
ln -s /home/james/transactions.txt my-stuffs/trans.txt
Det må være en katalog som allerede heter "my-stuffs" i din nåværende katalog - hvis ikke, vil kommandoen kaste en feil.
Hvordan lage en symlink for en mappe - eksempelkommando
I likhet med ovenfor vil vi bruke:
ln -s /home/james james
Dette vil opprette en symlinket mappe kalt 'james' som vil inneholde innholdet i /home/james
. Eventuelle endringer i denne koblede mappen vil også påvirke den opprinnelige mappen.
Hvordan fjerne en symlink
Før du vil fjerne en symlink, kan det være lurt å bekrefte at en fil eller mappe er en symlink, slik at du ikke tukler med filene dine.
En måte å gjøre dette på er:
ls -l
Å kjøre denne kommandoen på terminalen vil vise egenskapene til filen. I resultatet, hvis det første tegnet er en liten bokstav L ('l'), betyr det at filen / mappen er en symlink.
Du vil også se en pil (->) på slutten som indikerer filen / mappen simlink peker på.
Det er to metoder for å fjerne en symlink:
Hvordan bruke Unlink for å fjerne en Symlink
Syntaksen er:
unlink
Dette sletter symlinket hvis prosessen er vellykket.
Selv om symlinket er i form av en mappe, må du ikke legge til '/', fordi Linux antar at det er en katalog og unlink
ikke kan slette kataloger.
Hvordan bruke rm til å fjerne en Symlink
Som vi har sett, er en symlink bare en annen fil eller mappe som peker mot en original fil eller mappe. For å fjerne dette forholdet kan du fjerne den koblede filen.
Derfor er syntaksen:
rm
For eksempel:
rm trans.txt rm james
Merk at det å prøve å gjøre rm james/
vil føre til en feil, fordi Linux antar at 'james /' er en katalog som vil kreve andre alternativer som r
og f
. Men det er ikke det vi vil ha. En symlink kan være en mappe, men vi er bare opptatt av navnet.
Den største fordelen med rm
over unlink
er at du kan fjerne flere symlinker samtidig, som du kan med filer.
Hvordan finne og slette ødelagte koblinger
Brutte koblinger oppstår når filen eller mappen som en symlink viser til endrer sti eller blir slettet.
For eksempel, hvis 'transaksjoner.txt' går fra /home/james
til /home/james/personal
, blir koblingen 'trans.txt' ødelagt. Hvert forsøk på å få tilgang til filen vil resultere i feilen "Ingen slik fil eller katalog". Dette er fordi lenken ikke har noe eget innhold.
Når du oppdager ødelagte koblinger, kan du enkelt slette filen. En enkel måte å finne ødelagte symlinker på er:
find /home/james -xtype l
Dette vil liste opp alle ødelagte symlenker i james
katalogen - fra filer til kataloger til underkataloger.
Hvis du overfører -delete
alternativet, slettes de slik:
find /home/james -xtype l -delete
Innpakning
Symbolsk lenke er en interessant funksjon i Linux- og UNIX-systemer.
Du kan opprette lett tilgjengelige symlenker for å referere til en fil eller mappe som ellers ikke ville være praktisk å få tilgang til. Med litt øvelse vil du forstå hvordan disse fungerer på et intuitivt nivå, og de vil gjøre deg mye mer effektiv til å administrere filsystemer.