Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003

Symboliska länkar

Har hört att dessa används väldigt mycket i HOWTOs bla, och dom verkar rätt användbara. Exempelvis så kan man göra så att ett objekt som man lägger i /valfri_mapp hamnar i /annan_mapp om det finns en symbolisk länk mellan dessa, right?

Så hur använder man dessa länkar?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Hedersmedlem
Registrerad
Jul 2001

man ln
ln -s /bin/sh ./versta_feta_shellet
ln -s /usr/home /home

-s står för symbolisk länk, och det är viktigt att du vet skillnaden mellan en sån och en hård länk.

Citat:

By default, ln makes hard links. A hard link to a file is indistinguish-
able from the original directory entry; any changes to a file are effec-
tively independent of the name used to reference the file. Hard links
may not normally refer to directories and may not span file systems.

Kort sagt, en symbolisk länk är som en "genväg" till en fil medan en hård länk ÄR den andra filen, samtidigt som orginalet.

Bienvenido a la maldad

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003
Citat:

Ursprungligen inskrivet av Aphex
man ln
ln -s /bin/sh ./versta_feta_shellet
ln -s /usr/home /home

-s står för symbolisk länk, och det är viktigt att du vet skillnaden mellan en sån och en hård länk.Kort sagt, en symbolisk länk är som en "genväg" till en fil medan en hård länk ÄR den andra filen, samtidigt som orginalet.

Så genvägarna som jag gör i Nautilus är hårda då?
Och en symbolisk länk gör då att om du t.ex. symbol-länkar /images/wallpapers till /wallpapers så kommer man i /wallpapers både se innehållet i /wallpapers plus innehållet i /images/wallpapers? Eller?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Hedersmedlem
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av Trojan1313
[B]Så genvägarna som jag gör i Nautilus är hårda då?

[/b]naej, det behöver de inte vara.. jag vet inte hur Nautilus gör sina länkar. Symboliska är vanligare att man gör om man inte har speciella behov.[quote]
Och en symbolisk länk gör då att om du t.ex. symbol-länkar /images/wallpapers till /wallpapers så kommer man i /wallpapers både se innehållet i /wallpapers plus innehållet i /images/wallpapers? Eller?
[/QUOTE]Du kan inte skapa en sån länk eftersom det redan finns en "fil" (katalog) med samma namn.
Om du VILL göra på det viset får du kolla på unionfs.

Bienvenido a la maldad

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003

Om du tar bort något i en hård länk så försvinner det objektet, eller hur? Men om du gör det i en symbolisk så gör den väl också det? Detsamma gäller väl om du editerar innehållet eller lägger till innehåll?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005
Citat:

Ursprungligen inskrivet av Trojan1313
Om du tar bort något i en hård länk så försvinner det objektet, eller hur? Men om du gör det i en symbolisk så gör den väl också det? Detsamma gäller väl om du editerar innehållet eller lägger till innehåll?

En hård länk kan endast göras med filer och inte med kataloger.

Om man gör "ls -l" så anger siffran efter rättigheterna hur många hårda länkar en fil har.

Tar man bort en namn som är en hårdlänk så tas bara namnet bort så länge det finns ett annat namn som pekar mot filen, finns det bara ett namn kvar så tas filen bort.

Däremot en mjuk länk kan peka mot både filer och kataloger, man ser enkel om det är en mjuklänk om man kör "ls -l", man ser vad namnet pekar på.

Tar man bort en mjuk länk så ligger alltid orginalet kvar, tar man bort orginalet så ligger länken kvar.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003

Hm... så du menar att allt jag ser i min filbrowser är hårda länkar då?
Så om jag gör en hård länk av ett objekt och sedan tar bort orginalet så kommer filen ändå finnas kvar för att det finns en annan hård länk?

Jag tror jag förstått vad en mjuk länk är nu, det är en länk som fungerar som alla länkar i Windows eller?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Hedersmedlem
Registrerad
Jul 2001

Ja och ja, men symboliska länkar är lite smidigare än windows genvägar.

Bienvenido a la maldad

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003
Citat:

Ursprungligen inskrivet av Aphex
Ja och ja, men symboliska länkar är lite smidigare än windows genvägar.

Har en hårdlänk samma effekt som en kopia då?
Vad händer om man skapar en fil på hda1 och sedan gör en hårdlänk till hda2 och sedan tar bort den ursprungliga länken på hda1? Sätter den stop redan vid länkskapningen då, eller kopierar den över länken till hda2?

På vilket sätt är symboliska länkar effektivare än Windows genvägar? Är det att dom beter sig som vanliga mappar (i Windows redirectas man ju till genvägen istället)?

Så om jag förstått det rätt med hårda länkar nu så är det då så att Linuxbaserade filsystem lägger alla filer snyggt och fint på hårddisken, och sedan finns det något register för vart alla filer ligger? Är detta anledningen till att Linuxbaserade filsystem fragmenteras mindre också?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Hedersmedlem
Registrerad
Jul 2001

Den klagar om du försöker,
ln: ./redr.sh: Cross-device link

Ja.

Öhm, nä. så fungerar alla filsystem. fast unixsystem är väl lite flexiblare med hur en fil kan refereras till i detta register antar jag.

Bienvenido a la maldad

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2003
Citat:

Ursprungligen inskrivet av Aphex
Den klagar om du försöker,
ln: ./redr.sh: Cross-device link

Ja.

Öhm, nä. så fungerar alla filsystem. fast unixsystem är väl lite flexiblare med hur en fil kan refereras till i detta register antar jag.

Okej, det visste jag faktiskt inte. Bra att veta...

Är det helt meningslöst att ha en kopia av en fil på en och samma disk då?

Macbook Pro 15" (2,4 GHz Core Duo)

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005
Citat:

Ursprungligen inskrivet av Trojan1313
Har en hårdlänk samma effekt som en kopia då?
Vad händer om man skapar en fil på hda1 och sedan gör en hårdlänk till hda2 och sedan tar bort den ursprungliga länken på hda1? Sätter den stop redan vid länkskapningen då, eller kopierar den över länken till hda2?

Nej, en hårdlänk fungerar endast inom samma filsystem/partition, om du försöker så kommer den att klaga.

Citat:

Ursprungligen inskrivet av Trojan1313
På vilket sätt är symboliska länkar effektivare än Windows genvägar? Är det att dom beter sig som vanliga mappar (i Windows redirectas man ju till genvägen istället)?

länkar ligger i *nix i filsystemet medans windows genvägar är filer som windows tolkar.

Fördelen är att om man ex. har ett program som öppnar en länk så kommer man åt innehållet i länken, men gör ma samma sak på en genväg så öppnar man genvägen.

Citat:

Ursprungligen inskrivet av Trojan1313
Så om jag förstått det rätt med hårda länkar nu så är det då så att Linuxbaserade filsystem lägger alla filer snyggt och fint på hårddisken, och sedan finns det något register för vart alla filer ligger? Är detta anledningen till att Linuxbaserade filsystem fragmenteras mindre också?

Nej, ett *nix baserat filsystem lider också av fragmentering, däremot skiljer det sig mellan dom olika system hur man hittar i filsystemet, jämför FAT och NTFS i windows världen.

NTFS fragmenterar mindre än FAT eftersom det finns "logik" i NTFS som försöker förhindra det. Därmed inte sagt att ett NTFS system inte blir fragmenterad, det blir det.

På samma sätt har dom byggt in logik i dom olika *nix filsystem som försöker minimera fragmenteringen.

Citat:

Ursprungligen inskrivet av Trojan1313
Är det helt meningslöst att ha en kopia av en fil på en och samma disk då?

Nej, ta exempelvis bash, sh är oftast hårdlänkad till bash och programmet känner av att om det startas som sh så stänger den av en del funktioner som finns i bash men inte skall finnas i sh.

En annan vanlig funktion är om man har perl skript och på en system finns perl i /bin/perl men så tar man hem ett programpaket som förutsätter att perl finns i /usr/bin/perl.

För att då slippa ändra överallt så lägger man en länk så att /usr/bin/perl pekar mot /bin/perl sedan fungerar allt.

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D