Symlink Tutorial i Linux - Sådan oprettes og fjernes et symbolsk link

Et symlink (også kaldet et symbolsk link) er en filtype i Linux, der peger på en anden fil eller en mappe på din computer. Symlinks ligner genveje i Windows.

Nogle mennesker kalder symlinks "soft links" - en type link i Linux / UNIX-systemer - i modsætning til "hårde links."

Forskellen mellem et blødt link og et hårdt link

Softlinks ligner genveje og kan pege på en anden fil eller mappe i ethvert filsystem.

Hard links er også genveje til filer og mapper, men et hardt link kan ikke oprettes til en mappe eller fil i et andet filsystem.

Lad os se på de trin, der er involveret i oprettelse og fjernelse af et symlink. Vi ser også, hvad ødelagte links er, og hvordan vi sletter dem.

Sådan oprettes en Symlink

Syntaksen til oprettelse af et symlink er:

ln -s   

lner linkkommandoen. De -sflag angiver, at forbindelsen skal være blød. -skan også indtastes som -symbolic.

Som standard lnopretter kommandoen hårde links. Det næste argument er, path to the file (or folder)at du vil linke. (Det vil sige den fil eller mappe, du vil oprette en genvej til.)

Og det sidste argument er path to linkselve (genvejen).

Sådan oprettes et symlink til en fil - eksempelkommando

ln -s /home/james/transactions.txt trans.txt 

Når du har kørt denne kommando, kan du få adgang til /home/james/transactions.txtmed trans.txt. Enhver ændring af trans.txtreflekteres også i den originale fil.

Bemærk, at denne kommando ovenfor vil oprette linkfilen trans.txti dit nuværende bibliotek. Du kan lige så godt oprette en linket fil i en mappe, der linker dette:

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

Der skal være en mappe, der allerede hedder "my-stuffs" i ​​din nuværende mappe - hvis ikke vil kommandoen kaste en fejl.

Sådan oprettes et Symlink til en mappe - Eksempel på kommando

Svarende til ovenstående bruger vi:

ln -s /home/james james 

Dette ville skabe en symlinket mappe kaldet 'james', som ville indeholde indholdet af /home/james. Eventuelle ændringer i denne sammenkædede mappe påvirker også den oprindelige mappe.

Sådan fjernes et symlink

Før du vil fjerne et symlink, kan du bekræfte, at en fil eller mappe er et symlink, så du ikke manipulerer med dine filer.

En måde at gøre dette på er:

ls -l  

At køre denne kommando på din terminal viser filens egenskaber. I resultatet, hvis det første tegn er et lille bogstav L ('l'), betyder det, at filen / mappen er et symlink.

Du vil også se en pil (->) i slutningen, der angiver den fil / mappe, som simlink peger på.

Der er to metoder til at fjerne et symlink:

Sådan bruges Unlink til at fjerne en Symlink

Syntaksen er:

unlink  

Dette sletter symlinket, hvis processen er vellykket.

Selvom symlinket er i form af en mappe, skal du ikke tilføje '/', fordi Linux antager, at det er et bibliotek og unlinkikke kan slette mapper.

Sådan bruges rm til at fjerne en Symlink

Som vi har set, er et symlink bare en anden fil eller mappe, der peger på en original fil eller mappe. For at fjerne dette forhold kan du fjerne den linkede fil.

Derfor er syntaksen:

rm  

For eksempel:

rm trans.txt rm james 

Bemærk, at forsøg på at gøre rm james/ville resultere i en fejl, fordi Linux antager, at 'james /' er en mappe, som kræver andre muligheder som rog f. Men det er ikke det, vi ønsker. Et symlink kan være en mappe, men vi er kun bekymrede over navnet.

Den største fordel ved rmover unlinker, at du kan fjerne flere symlinks på en gang, som du kan med filer.

Sådan finder du og sletter ødelagte links

Brudte links opstår, når den fil eller mappe, som et symlink peger på, ændrer sti eller slettes.

For eksempel, hvis 'transaktioner.txt' flytter fra /home/jamestil /home/james/personal, brydes linket 'trans.txt'. Ethvert forsøg på at få adgang til filen vil resultere i en 'Ingen sådan fil eller bibliotek' -fejl. Dette skyldes, at linket ikke har noget eget indhold.

Når du opdager ødelagte links, kan du nemt slette filen. En nem måde at finde ødelagte symlinks på er:

find /home/james -xtype l 

Dette viser alle ødelagte symlinks i jameskataloget - fra filer til mapper til underkataloger.

Hvis du vælger -deleteindstillingen, slettes de som sådan:

find /home/james -xtype l -delete 

Afslutter

Symbolisk link er et interessant træk ved Linux- og UNIX-systemer.

Du kan oprette let tilgængelige symlinks til at henvise til en fil eller mappe, der ellers ikke ville være praktisk at få adgang til. Med lidt øvelse vil du forstå, hvordan disse fungerer på et intuitivt niveau, og de vil gøre dig meget mere effektiv til styring af filsystemer.