Hej der igen. I denne introduktion til hårde links og symbolske links vil vi først forsøge at lære og definere, hvad de hver især betyder. Derefter vil vi diskutere, hvad forskellene mellem de to er.
Så hvad er et hard link, og hvad gør det præcist i shell’en?
Et hard link er blot et ekstra navn til en eksisterende fil på Linux eller andre Unix-lignende operativsystemer.
Der kan oprettes et vilkårligt antal hard links, og dermed et vilkårligt antal navne, til en hvilken som helst fil. Der kan også oprettes hardlinks til andre hardlinks. De kan dog ikke oprettes til mapper, og de kan ikke krydse filsystemgrænser eller gå på tværs af partitioner.
Den måske mest nyttige anvendelse af hardlinks er at gøre det muligt at få let adgang til filer, programmer og scripts (dvs. korte programmer) i en anden mappe end den oprindelige fil eller den eksekverbare fil (dvs. den køreklare version af et program). Ved at skrive navnet på hardlinket vil programmet eller scriptet blive udført på samme måde som ved at bruge dets oprindelige navn. (http://www.linfo.org/hard_link.html)
Vil du læse denne historie senere? Gem den i Journal.
Så hvad betyder denne definition egentlig? Jo, du kan oprette et hardlink til en eksisterende fil ved at bruge kommandoen ln file_name hardlink. Jeg har givet et eksempel nedenfor på oprettelse af et hardlink i praksis. I eksemplet nedenfor har jeg oprettet et hardlink aka en genvej til filen med navnet file1 med hardlinket hlink1.
Nu lader ls -i
. Så at den opregner alle filer med inode.
INODE Definition: Inode er en datastruktur i et filsystem i Unix-stil, som beskriver et filsystemobjekt som f.eks. en fil eller en mappe. Hver inode gemmer attributterne og diskblokplacering(er) for objektets data. Filsystemobjektets attributter kan omfatte metadata (tidspunkt for sidste ændring, adgang, modifikation) samt ejer- og tilladelsesdata.
Directories er lister med navne, der er tildelt inodes. En mappe indeholder en post for sig selv, sin forælder og hver af sine børn. (https://en.wikipedia.org/wiki/Inode)
Hvis du kigger på file1 og hlink1 kan du se, at inoden på venstre side er den samme. I det væsentlige fungerer hardlinks som en genvej til den fil, der er hardlinket.
Nu går vi videre til “Soft Links”
Soft links er en særlig form for fil, der peger på en anden fil, ligesom en genvej. I modsætning til et hard link indeholder et symbolsk link ikke dataene i målfilen. Det peger blot på en anden post et sted i filsystemet. Denne forskel giver symbolske links visse kvaliteter, som hårde links ikke har, f.eks. muligheden for at linke til mapper eller til filer på fjerncomputere i netværk via NFS. Når du sletter en målfil, bliver symbolske links til den pågældende fil også ubrugelige, hvorimod hårde links bevarer filens indhold. (https://kb.iu.edu/d/abbe)
Nu skal vi oprette et blødt link til sammenligning med det hårde link, som vi oprettede ovenfor.
Så lad os åbne en terminal. Gå til finder eller søg og indtast terminal det skulle poppe op klik på det og åben.
For vores eksempel lad os først oprette en fil. Hvis vi skriver touch example1
trykker vi på enter. Vi kan oprette en fil. Nu skal vi oprette softlinket.
Hvis vi skriver i shell ln -s example1 softlink1
opretter vi et softlink mellem filerne. Se eksemplet nedenfor.
Hvis vi nu skulle skrive ls -i
vil vi også bemærke, at kun hardlink filen har samme inode som hardlinket, mens softlink filen har forskellige inodes.