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   

lner koblingskommandoen. De -sflagget angir at koblingen bør være myk. -skan også legges inn som -symbolic.

Som standard lnoppretter 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 linkselve (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.txtmed trans.txt. Eventuelle endringer i trans.txtvil også gjenspeiles i originalfilen.

Merk at denne kommandoen ovenfor vil opprette koblingsfilen trans.txti 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 unlinkikke 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 rog 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 rmover unlinker 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/jamestil /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 jameskatalogen - fra filer til kataloger til underkataloger.

Hvis du overfører -deletealternativet, 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.