Mjuk (symbolisk) länk vs hård länk

Soft Link Vs Hard Link



Symboliska länkar (även kallade mjuka länkar) och hårda länkar är en resurs för att komma åt filer eller kataloger från valfri plats. Denna artikel kommer att beskriva skillnaderna mellan symboliska länkar och hårda länkar.

Hårda länkar

Hårda länkar är inte en fil som innehåller sökvägen till originalfilen utan speglar kopior av originalfilen som de pekar på. En fil och dess hårda länkar är inte associerade med namnet eller sökvägen utan med inoden som lagrar information om filen, till exempel dess plats, skapelsedatum, behörigheter och andra attribut. Varje inodnummer är unikt i ett filsystem som förhindrar hårda länkar från att fungera mellan olika partitioner eller system. Hårda länkar kan inte användas för att länka kataloger.







I motsats till mjuka länkar innehåller hårda länkar informationen de länkar till så om den ursprungliga filen tas bort kan du fortfarande komma åt dess data.



I alla Linux -system skapas både hårda och symboliska länkar med kommandot ln . För att komma igång, skapa först en fil som heter LinuxHintFile och en katalog som heter LinuxHintDirectory som visas på bilden nedan:



RörLinuxHintFile
rmkdir LinuxHintDirectory
ls
rot@Linux Tips:/Hem/linuxhint#





Så här skapar du en hård länk som heter Link2LHFile till filen LinuxHintFile som körs i terminalen:

lnLinuxHintFile Link2LHFile



Efter att ha kollat ​​med ls vi ser den hårda länken vi just skapade, om du skriver ls -i ser du filernas inoder, du kan bekräfta att länken vi just skapade har samma inodnummer än den ursprungliga filen, skriv:

ls -i

Som vi sa ovan kan vi inte använda hårda länkar för kataloger eller länkar till andra volymer eller filsystem, vi länkar LinuxHintDirectory med en mjuk länk.

Du kan hitta hårda länkar i arbetskatalogen genom att köra:

hitta -typf-länkar+1

Du kan också hitta filer med inoder för den här körningen:

hitta.-inum <InodeNumber>

Som du ser hittade den både originalfilen och den hårda länken som delar samma inodnummer.

Mjuka länkar

I motsats till hårda länkar är mjuka länkar inte kopior av originalfilen, de innehåller sökvägen till originalfilen, på grund av detta om den ursprungliga filen tas bort kommer den mjuka länken eller den symboliska länken att peka på att ingen fil blir en trasig länk, eller en föräldralös länk, vilket innebär att om du förlorar källfilen, om du tar bort eller flyttar den, kommer den symboliska länken att förlora åtkomst till informationen, medan den med den hårda länken förblir informationen trots att källfilen tas bort eftersom den är en fullständig och exakt kopia av den filen.

Till skillnad från hårda länkar delar symboliska länkar inte samma inode med originalfilen, därför kan symboliska länkar korsa volymer och filsystem medan hårda länkar inte kan. Symboliska länkar kan användas för att länka kataloger medan det inte är möjligt med hårda länkar.

Symboliska länkar skapas också med programmet ln , men för att länken ska vara symbolisk/mjuk måste vi ange parametern -s , för att skapa en symbolisk länk till katalogen LinuxHintDirectory som heter LHDLink run:

ln -sLinuxHintDirectory LHDLink

Och kör sedan ' ls -i 'För att kontrollera att den skapades korrekt:

Som vi ser i det här fallet skapades den symboliska länken, men den har ett annat inodnummer än den ursprungliga filen.

Vi kan lista symboliska länkar i en katalog med kommandot ls -l

I bilden ovan kan vi se behörigheterna för den första filen prefixet de för symboliska länkar, visar slutet av raden också till vilken fil de symboliska länkarna pekar.

Jag hoppas att du fann den här artikeln användbar för att förstå skillnader mellan hårda länkar och symboliska länkar och hur du skapar dem. Fortsätt följa LinuxHint för fler tips och uppdateringar om Linux.