10. toukokuuta, Tässä johdannossa koviin linkkeihin ja symbolisiin linkkeihin yritämme ensin oppia ja määritellä, mitä kumpikin tarkoittaa. Sitten keskustelemme siitä, mitä eroja näiden kahden välillä on.

Mikä sitten on kova linkki ja mitä se tekee komentotulkissa?

Kova linkki on vain lisänimi olemassa olevalle tiedostolle Linuxissa tai muissa Unixin kaltaisissa käyttöjärjestelmissä.

Mille tahansa tiedostolle voidaan luoda mikä tahansa määrä kovia linkkejä ja siten mikä tahansa määrä nimiä. Kovia linkkejä voidaan luoda myös toisiin koviin linkkeihin. Niitä ei kuitenkaan voi luoda hakemistoihin, eivätkä ne voi ylittää tiedostojärjestelmän rajoja tai ulottua osioiden yli.

Kovien linkkien ehkä hyödyllisin sovellus on se, että tiedostoja, ohjelmia ja skriptejä (eli lyhyitä ohjelmia) voidaan helposti käyttää eri hakemistossa kuin alkuperäistä tiedostoa tai suoritettavaa tiedostoa (eli ohjelman valmista versiota). Kun kirjoitat kovan linkin nimen, ohjelma tai skripti suoritetaan samalla tavalla kuin sen alkuperäistä nimeä käyttämällä. (http://www.linfo.org/hard_link.html)

Haluatko lukea tämän jutun myöhemmin? Tallenna se Journaliin.

Mitä tämä määritelmä oikeastaan tarkoittaa? No, voit luoda kovan linkin olemassa olevaan tiedostoon komennolla ln tiedoston_nimi hardlink. Olen antanut alla esimerkin kovan linkin luomisesta käytännössä. Alla olevassa esimerkissä loin kiintolinkin eli pikakuvakkeen tiedostoon nimeltä file1 kiintolinkillä nimeltä hlink1.

Luotaan nyt ls -i. Jotta se listaa kaikki tiedostot, joilla on inode.

INODE Määritelmä: Inode on Unix-tyylisen tiedostojärjestelmän tietorakenne, joka kuvaa tiedostojärjestelmän objektia, kuten tiedostoa tai hakemistoa. Kukin inode tallentaa objektin tietojen attribuutit ja levylohkojen sijainnin (sijainnit). Tiedostojärjestelmän objektien attribuutteihin voi sisältyä metatietoja (viimeisimmän muutoksen, käytön ja muokkauksen ajankohdat) sekä omistaja- ja käyttöoikeustietoja.

Hakemistot ovat luetteloita inodeille annetuista nimistä. Hakemisto sisältää merkinnän itselleen, vanhemmalleen ja jokaiselle lapselleen. (https://en.wikipedia.org/wiki/Inode)

Jos tarkastellaan tiedosto1:tä ja hlink1:tä, voidaan nähdä, että vasemmalla puolella oleva inode on sama. Pohjimmiltaan hardlinkit toimivat pikakuvakkeena siihen tiedostoon, joka on kovasti linkitetty.

Nyt siirrymme ”Pehmeisiin linkkeihin”

Pehmeät linkit ovat erityyppinen tiedosto, joka osoittaa toiseen tiedostoon pikakuvakkeen tapaan. Toisin kuin kova linkki, symbolinen linkki ei sisällä kohdetiedoston tietoja. Se vain osoittaa toiseen merkintään jossakin tiedostojärjestelmässä. Tämä ero antaa symbolisille linkeille tiettyjä ominaisuuksia, joita kovilla linkeillä ei ole, kuten mahdollisuuden linkittää hakemistoihin tai NFS-verkon kautta verkotettuihin etätietokoneiden tiedostoihin. Kun poistat kohdetiedoston, symboliset linkit kyseiseen tiedostoon muuttuvat käyttökelvottomiksi, kun taas kovat linkit säilyttävät tiedoston sisällön. (https://kb.iu.edu/d/abbe)

Luotaan nyt pehmeä linkki, jota verrataan edellä luotuun kovaan linkkiin.

Avataan siis terminaali. Mennään finderiin tai hakuun ja syötetään terminaali sen pitäisi avautua klikataan sitä ja avataan.

Luotaan esimerkissä ensin tiedosto. Kirjoitetaan touch example1 ja painetaan enteriä. Voimme luoda tiedoston. Nyt luomme pehmeän linkin.

Jos kirjoitamme komentotulkkiin ln -s example1 softlink1 luomme pehmeän linkin tiedostojen välille. Katso alla oleva esimerkki.

softlink

Nyt jos kirjoittaisimme ls -i huomaamme myös sen, että vain kovalinkkitiedostolla on sama inode kuin kovalinkillä, kun taas pehmolinkkitiedostolla on erilainen inode.

mitä eroja on kovien ja pehmeiden linkkien välillä?

Pehmeä linkki ei sisällä kohdetiedoston tietoja.

Pehmeä linkki osoittaa toiseen merkintään jossakin tiedostojärjestelmässä.

Pehmeä linkki pystyy linkittämään hakemistoihin tai NFS-verkon kautta verkotettuihin etätietokoneiden tiedostoihin.

Symbolisen linkin kohdetiedoston poistaminen tekee linkistä käyttökelvottoman.

Kova linkki säilyttää tiedoston sisällön.

Kovaa linkkiä ei voi luoda hakemistoihin, eivätkä ne voi ylittää tiedostojärjestelmän rajoja tai ulottua osioiden yli.

Kovassa linkissä voit käyttää mitä tahansa luodun kovan linkin nimeä ohjelman tai komentosarjan suorittamiseen samalla tavalla kuin alkuperäistä annettua nimeä.

Keskeisesti:

”Tiedostojärjestelmän alla tiedostot edustavat inodeja

Tiedosto tiedostojärjestelmässä on periaatteessa linkki inodeen.
Kovalinkki luo sitten vain toisen tiedoston, jolla on linkki samaan taustalla olevaan inodeen.

Kun poistat tiedoston, se poistaa yhden linkin taustalla olevaan inodeen. Inode on poistettu (tai poistettavissa/ylikirjoitettavissa) vasta, kun kaikki linkit inodeen on poistettu.

Symbolinen linkki on linkki toiseen nimeen tiedostojärjestelmässä.

Kiinteän linkin luomisen jälkeen linkki on inodeen.Alkuperäisen tiedoston poistaminen, uudelleennimeäminen tai siirtäminen ei vaikuta kiinteään linkkiin, koska se linkittää sen taustalla olevaan inodeen. Kaikki muutokset inoden tietoihin heijastuvat kaikkiin tiedostoihin, jotka viittaavat kyseiseen inodeen.

Huomaa: Kovat linkit ovat voimassa vain saman tiedostojärjestelmän sisällä. Symboliset linkit voivat olla tiedostojärjestelmien välisiä, koska ne ovat yksinkertaisesti toisen tiedoston nimi.”

(http://stackoverflow.com/questions/185899/what-is-the-difference-between-a-symbolic-link-and-a-hard-link)

Kuoriraketin tutkiminen ja miten se suorittaa komennon

  • Kuoriraketti lukee syötteensä tiedostosta, merkkijonosta tai käyttäjän päätelaitteesta.
  • Syöttö pilkotaan sanoiksi ja operaattoreiksi lainausmerkintäsääntöjä noudattaen. Nämä merkit erotetaan toisistaan metamerkillä. Alias-laajennus suoritetaan.
  • Kuoretulkki jäsentää (analysoi ja korvaa) merkit yksinkertaisiksi ja yhdistetyiksi komennoiksi.
  • Kuoretulkki suorittaa erilaisia komentotulkkilaajennuksia, jotka hajottavat laajennetut merkit listoiksi tiedostonimistä ja komennoista sekä argumenteista.
  • Toteutetaan tarvittaessa uudelleenohjaus, uudelleenohjausoperaattorit ja niiden operandit poistetaan argumenttilistasta.
  • Komennot suoritetaan.
  • Vaihtoehtoisesti komentotulkki odottaa komennon suorittamista ja kerää sen poistumistilan.

.

Vastaa

Sähköpostiosoitettasi ei julkaista.