Kovien linkkien määritelmä
Kova linkki on tiedostojärjestelmän tiedostoviittaus, joka yhdistää tiedoston toiseen sijaintiin luomatta erillistä kopiota. Se mahdollistaa useiden hakemistomerkintöjen viittaamisen samaan tiedostoon, tarjoten tavan käyttää samaa dataa eri sijainneista.
Kuinka kovat linkit toimivat
Kun kova linkki luodaan, se osoittaa suoraan tiedoston inodeen. Inode on Unix-tyylisen tiedostojärjestelmän tietorakenne, joka tallentaa tiedoston tai hakemiston tietoja, mukaan lukien sijainnin, koon ja oikeudet.
Yksi tärkeä ominaisuus kovissa linkeissä on, että ne eivät luo erillisiä kopioita tiedostosta. Sen sijaan ne luovat lisäviittauksia samaan pohjana toimivaan dataan. Tämä tarkoittaa, että tiedostoon tehtävät muutokset yhden kovan linkin kautta heijastuvat kaikkiin muihin kovaan inodeen viittaaviin linkkeihin. Esimerkiksi, jos muutat tiedoston sisältöä yhden kovan linkin kautta, nuo muutokset näkyvät, kun tiedostoa käytetään minkä tahansa muun kovan linkin kautta.
On syytä huomata, että kovat linkit rajoittuvat saman tiedostojärjestelmän sisäisiin tiedostoihin. Tämä johtuu siitä, että tiedostojärjestelmä seuraa inodeja tietyn tiedostojärjestelmän sisällä, joten kovat linkit voivat viitata vain sen tiedostojärjestelmän sisäisiin tiedostoihin.
Kovien linkkien edut
- Tilaa säästävä: Kovat linkit eivät kuluta ylimääräistä tallennustilaa, koska ne osoittavat samaan inodeen ja jakavat saman datan.
- Tehokas tiedostonhallinta: Kovat linkit mahdollistavat useiden hakemistomerkintöjen viittaamisen samaan tiedostoon, mikä tekee tiedostojen järjestämisestä ja käyttämisestä eri sijainneista helppoa.
- Nopea pääsy: Koska kovat linkit osoittavat suoraan tiedoston inodeen, pääsy tiedostoon kovan linkin kautta on yhtä nopeaa kuin sen alkuperäisen nimen kautta.
Huomioitavaa ja rajoituksia
- Nimeäminen: Kovan linkin nimeäminen uudelleen ei vaikuta tiedostoon, johon se osoittaa, tai muihin samaan tiedostoon osoittaviin koviin linkkeihin. Jokainen kova linkki toimii itsenäisesti, ja niiden nimet voidaan muuttaa vaikuttamatta muihin.
- Poistaminen: Alkuperäisen tiedoston poistaminen ei vaikuta koviin linkkeihin, koska ne osoittavat suoraan dataan eikä tiedoston nimeen. Kuitenkin, jos kaikki tiedostoon viittaavat kovat linkit poistetaan, data poistetaan pysyvästi vasta, kun alkuperäinen tiedosto poistetaan myös.
- Oikeudet: Kovan linkin tai alkuperäisen tiedoston oikeuksien muokkaaminen vaikuttaa molempiin. Koska kovat linkit ovat vain viittauksia samaan dataan, kaikki muutokset oikeuksissa tai käyttöoikeuksissa heijastuvat kaikkiin koviin linkkeihin.
- Eri tiedostojärjestelmät: Kovat linkit voivat olla olemassa vain saman tiedostojärjestelmän sisällä. Jos yrität luoda kovan linkin tiedostojen välillä eri tiedostojärjestelmissä, tuloksena on virhe.
Käytännön esimerkkejä
Esimerkki 1:
Unix-pohjaisessa käyttöjärjestelmässä käyttäjällä voi olla hakemisto nimeltä "/home/user/documents", joka sisältää tärkeitä tiedostoja. Jos tiettyä tiedostoa tarvitsee käyttää usein toisesta hakemistosta, kova linkki voidaan luoda "ln" komennolla näin:
ln /home/user/documents/file.txt /usr/local/bin/file-link
Tämä luo kovan linkin nimeltä "file-link" hakemistoon "/usr/local/bin", joka osoittaa samaan inodeen kuin alkuperäinen tiedosto.
Esimerkki 2:
Versionhallintaa varten ohjelmistokehitystiimi voi haluta useiden kehittäjien työskentelevän saman lähdekooditiedoston parissa samanaikaisesti. Luomalla kovat linkit tiedostoon, jokainen kehittäjä voi käyttää ja muokata tiedostoa itsenäisesti, samalla kun kaikki muutokset heijastuvat reaaliajassa.
Liittyvät termit
- Symbolinen linkki: Symbolinen linkki, tunnetaan myös nimellä pehmeä linkki, on tiedosto, joka toimii viittauksena tai pikakuvakkeena toiseen tiedostoon tai hakemistoon. Toisin kuin kova linkki, symbolinen linkki osoittaa tiedoston nimeen, ei suoraan pohjana olevaan dataan.
- Inode: Inode on Unix-tyylisen tiedostojärjestelmän tietorakenne, joka tallentaa tiedoston tai hakemiston metadataa. Se sisältää tietoja, kuten tiedoston sijainti, koko, käyttöoikeudet ja aikaleimat.
Lähteet
- Wikipedia - Hard link
- Linuxize - Understanding Hard and Soft (Symbolic) Links in Linux
- nixCraft - Unix / Linux: Create Symbolic Links Only ( Without Actual File / Directory )