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
ln
er linkkommandoen. De -s
flag angiver, at forbindelsen skal være blød. -s
kan også indtastes som -symbolic
.
Som standard ln
opretter 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 link
selve (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.txt
med trans.txt
. Enhver ændring af trans.txt
reflekteres også i den originale fil.
Bemærk, at denne kommando ovenfor vil oprette linkfilen trans.txt
i 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 unlink
ikke 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 r
og 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 rm
over unlink
er, 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/james
til /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 james
kataloget - fra filer til mapper til underkataloger.
Hvis du vælger -delete
indstillingen, 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.