Wat is Soft Link en Hard Link in Linux?
Een symbolische of soft link is een daadwerkelijke link naar het originele bestand, terwijl een hard link een spiegelkopie is van het originele bestand. Als u het originele bestand verwijdert, heeft de soft link geen waarde, omdat het verwijst naar een niet-bestaand bestand. Maar in het geval van een hard link is het precies andersom. Zelfs als je het originele bestand verwijdert, zal de hard link nog steeds de gegevens van het originele bestand hebben. Omdat hard link fungeert als een spiegel kopie van het originele bestand.
In een notendop, een soft link
- kan het bestandssysteem doorkruisen,
- laat u toe om tussen directories te linken,
- heeft verschillende inode nummer en bestandspermissies dan het originele bestand,
- permissies zullen niet worden bijgewerkt,
- heeft alleen het pad van het originele bestand, niet de inhoud.
Een hardlink
- kan de grenzen van het bestandssysteem niet overschrijden (d.w.z.Een hardlink kan alleen op hetzelfde bestandssysteem werken),
- kan geen directories linken,
- heeft hetzelfde inode nummer en permissies van het originele bestand,
- permissies zullen worden bijgewerkt als we de permissies van het bronbestand wijzigen,
- heeft de actuele inhoud van het originele bestand, zodat u nog steeds de inhoud kunt bekijken, zelfs als het originele bestand is verplaatst of verwijderd.
Snap je het nog steeds niet? Ik zal u een paar praktische voorbeelden laten zien.
Soft Link of Symbolische Link maken
Laat ons een lege directory maken, genaamd “test”.
$ mkdir test
Werk in de “test” directory:
$ cd test
Nu, maak een nieuw bestand genaamd source.file met een aantal gegevens zoals hieronder getoond.
$ echo "Welcome to OSTechNix" >source.file
Laten we de gegevens van de source.file bekijken.
$ cat source.fileWelcome to OSTechNix
Wel, de source.bestand is aangemaakt.
Nu, maak de een symbolische of soft link naar de bron.file.
Om dit te doen, voer uit:
$ ln -s source.file softlink.file
Laat ons de gegevens vergelijken van zowel bron.file en softlink.file.
$ cat source.file Welcome to OSTechNix
$ cat softlink.file Welcome to OSTechNix
Zoals u in de bovenstaande uitvoer ziet, geeft softlink.file dezelfde gegevens weer als source.file.
Laten we de inodes en rechten controleren van softlink.file en source.file.
$ ls -lia
Monsteruitvoer:
total 1211665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:39 . 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..11665731 lrwxrwxrwx 1 sk sk 11 Oct 17 11:39 softlink.file -> source.file11665692 -rw-rw-r-- 1 sk sk 21 Oct 17 11:39 source.file
Zoals we in bovenstaande schermafbeelding zien, zijn het inode-nummer (11665731 vs 11665692) en de bestandspermissies (lrwxrwxrwx vs -rw-r–r–) verschillend, ook al heeft de softlink.bestand dezelfde inhoud heeft als source.file, is bewezen dat de softlink niet hetzelfde inode nummer en dezelfde permissies heeft als het originele bestand.
Nu, verwijder het originele bestand (d.w.z. bron.bestand) en kijk wat er gebeurt.
$ rm source.file
Controleer de inhoud van het softlink.bestand met behulp van commando:
$ cat softlink.file
Monsteruitvoer:
cat: softlink.file: No such file or directory
Zoals je hierboven ziet, is er geen bestand of directory met de naam softlink.bestand nadat we het originele bestand (d.w.z. bron.bestand) hebben verwijderd. Dus nu begrijpen we dat softlink gewoon een link is die verwijst naar het originele bestand. De softlink is als een snelkoppeling naar een bestand. Als je het bestand verwijdert, is de snelkoppeling nutteloos.
Zoals je al weet, als je de softlink verwijdert, is het originele bestand nog steeds beschikbaar.
Gesuggereerd lezen:
- Hoe Symlinks Lijst Op Linux
- Hoe Broken Symlinks Vinden En Verwijderen Op Linux
Harde Link Maken
Maak een bestand genaamd source.bestand met een aantal inhoud zoals hieronder getoond.
$ echo "Welcome to OSTechNix" >source.file
Laten we de inhoud van het bestand controleren.
$ cat source.fileWelcome to OSTechNix
source.bestand is nu aangemaakt.
Nu maken we de hardlink naar het bron.bestand zoals hieronder is aangegeven.
$ ln source.file hardlink.file
Controleer de inhoud van hardlink.bestand.
$ cat hardlink.fileWelcome to OSTechNix
Je ziet dat het hardlink.bestand dezelfde gegevens weergeeft als bron.bestand.
Laten we de inode en permissies van hardlink.file en source.file controleren.
$ ls -lia
Monsteruitvoer:
total 1611665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:58 .4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 hardlink.file11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 source.file
Nu zien we dat zowel hardlink.file als source.file hetzelfde inodenummer (11665692) en dezelfde bestandspermissies (-rw-r–r–) hebben. Het is dus bewezen dat het hardlink bestand hetzelfde inodes nummer en dezelfde permissies heeft als het originele bestand.
Note: Als we de permissies op source.file veranderen, zullen dezelfde permissies ook worden toegepast op het hardlink.bestand.
Nu, verwijder het originele bestand (i.
$ rm source.file
Controleer de inhoud van het hardlink.bestand met behulp van het commando:
$ cat hardlink.file
Monsteruitvoer:
Zoals je hierboven ziet, kan ik de inhoud van het hardlink.bestand bekijken, zelfs als ik het bronbestand heb verwijderd. Het is dus bewezen dat de hardlink hetzelfde inode nummer, dezelfde rechten en gegevens heeft als het originele bestand.
Wat is nu het verschil tussen een hardlink en een normaal gekopieerd bestand?
Je vraagt je misschien af waarom we een hardlink maken, terwijl we het originele bestand makkelijk kunnen kopiëren/plakken? Het maken van een hard link naar een bestand is iets anders dan het kopiëren ervan.
Als je een bestand kopieert, wordt alleen de inhoud gedupliceerd. Dus als je de inhoud van een bestand wijzigt (hetzij origineel of harde link), heeft dat geen effect op het andere bestand. Maar als je een hard-link maakt naar een bestand en je wijzigt de inhoud van een van beide bestanden, dan zal de wijziging op beide bestanden te zien zijn.
Laten we eens kijken naar het bron.bestand.
$ cat source.file Welcome to OSTechNix
Het bron bestand heeft een enkele regel die zegt – Welkom bij OSTechNix.
Voeg een nieuwe regel toe, bijvoorbeeld “Welkom bij Linux” in source.file of hardlink.file.
$ echo "Welcome to Linux" >>source.file
Nu de inhoud van beide bestanden controleren.
$ cat hardlink.file Welcome to OSTechNixWelcome to Linux
$ cat source.file Welcome to OSTechNixWelcome to Linux
Zie je? De wijzigingen die we zojuist hebben aangebracht in source.file zijn in beide bestanden bijgewerkt. Betekenis – beide bestanden (bron en hard link) synchroniseert. Alle wijzigingen die je in een bestand maakt, worden ook in het andere bestand doorgevoerd. Als je normaal het bestand kopieert/plakt, zul je geen nieuwe wijzigingen in het andere bestand zien.
Voor meer details, kijk in de man pages.
$ man ln
Dat is alles voor nu. Hopelijk heb je een basis idee over symbolische of soft link en hard link.
Dank voor het langskomen!
Help ons u te helpen:
- Inschrijf u in voor onze Email Nieuwsbrief : Schrijf u nu in
- Steun OSTechNix : Doneer via PayPal
- Download gratis E-Books en Video’s : OSTechNix op TradePub
- Maak contact met ons: Reddit | Facebook | Twitter | LinkedIn | RSS feeds
Heb een goede dag!!