A linkek a Unixban lényegében a mutatók, amelyek a fájlokhoz és könyvtárakhoz kapcsolódnak. A fő különbség a hard link és a soft link között az, hogy a hard link a fájlra való közvetlen hivatkozást jelenti, míg a soft link a név szerinti hivatkozást, ami azt jelenti, hogy egy fájlra a fájlnév alapján mutat.
A hard link az azonos fájlrendszerben lévő fájlokat és könyvtárakat köti össze, de a soft link képes áthaladni a fájlrendszer határain.
A linkek megértése előtt először az inode-ot kell megértenünk, az inode egy olyan adatstruktúra, amely a fájlra vonatkozó metaadatokból áll, mint például a fájl létrehozásának dátuma, a fájl jogosultságai, a fájl tulajdonosa és így tovább.
Tartalom: Hard link Vs Soft link
- Összehasonlító táblázat
- Definíció
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | Kemény link | Lágy link |
---|---|---|
Basic | Egy fájlt több különböző néven, úgynevezett hard linkeken keresztül lehet elérni. | Egy fájlt különböző, az adott fájlra mutató hivatkozásokon keresztül lehet elérni, ezt nevezzük lágy hivatkozásnak. |
Link érvényesítés, ha az eredeti fájlt töröljük | Még érvényes és a fájl elérhető. | érvénytelen |
A létrehozáshoz használt parancs | ln | ln -.s |
inode number | Same | Different |
Csatlakoztatható | A saját partícióhoz. | Minden más fájlrendszerhez, akár hálózaton keresztül is. |
Memóriafogyasztás | Kisebb | Több |
Relatív elérési útvonal | Nem alkalmazható | Megengedett |
A Hard link definíciója
A hard linkek közvetlenül összekötnek két fájlt ugyanabban az állományrendszerben, és az azonosításhoz a fájl inode számát használja. A hard linkek nem implementálhatók könyvtárakra (mivel azok inode-ra mutatnak). Amikor az “ln” parancsot használjuk hard link létrehozására, az egy másik fájlt hoz létre a parancssorban, amely az eredeti fájlra való hivatkozásra használható. Mind az eredeti, mind a generált fájlnak ugyanaz az inode-ja és tartalma, ezért ugyanazokkal a jogosultságokkal és ugyanazzal a tulajdonossal rendelkeznek.
Az eredeti fájl eltávolítása nem befolyásolja a hardlinkelt fájlt, és egy hardlinkelt fájl marad. Az inode tartalmaz egy számlálót, hogy kiszámítsa a magára mutató hard linkek számát. Amikor a számláló 0 értéket mutat, akkor az inode kiürül. Bármikor, amikor bármilyen változtatást végez a hard linkben, az utánozni fog az eredeti fájlban.
A Soft link definíciója
A soft linkek általában az eredeti fájl alternatív elérési útvonalát (vagy aliasát) jelentik; ezeket szimbolikus linkeknek is nevezik. Tartalmazza a hivatkozás “célfájljának” nevét, jelzőt, amely meghatározza, hogy lágy hivatkozásról van szó. Amikor egy fájlt elérünk, a lágy link átirányítja azt a célfájlra a lágy link tárgyába írt elérési útvonalon keresztül.
Ezek nagyon hasznosak a windows operációs rendszer esetében, ahol a lágy link parancsikonként viselkedik. A lágy hivatkozások létrehozása és törlése nem érinti az eredeti fájlt. Ha a célfájlt törlik, a lágy link lóg, ami azt jelenti, hogy sehová sem mutat, és hibaüzenetet generál a célfájl elérésekor. A lágy hivatkozások nem használnak inode számot, ellentétben a kemény hivatkozással. A szimbolikus linkek része lehet egy abszolút vagy egy relatív elérési útvonal.
Főbb különbségek a hard link és a soft link között
- A hard link az eredeti fájl kiegészítő neve, amely a célfájl eléréséhez inode-ra hivatkozik. Ezzel szemben a lágy link különbözik az eredeti fájltól, és az eredeti fájl álneve, de nem használ inode-ot.
- Az eredeti fájl törlésekor a lágy link érvénytelenné válik, míg a kemény link akkor is érvényes, ha a célfájlt törlik.
- A Linuxban a kemény link létrehozására használt parancs az “ln”. Ezzel szemben a lágy link létrehozásához használt parancs az “ln -s”.
- A kemény linknek ugyanaz az inode száma, ellentétben a lágy linkkel, ahol a célfájlnak és a lágy linknek különböző inode száma van.
- A kemény linkek a saját partíciókra korlátozódnak, de a lágy linkek különböző fájlrendszerekre is kiterjedhetnek.
- A kemény link teljesítménye bizonyos esetekben jobb, mint a lágy linké.
- A lágy linkekben a relatív és abszolút elérési útvonal is megengedett. Ezzel szemben a relatív elérési útvonal nem megengedett a hard linkben.
Következtetés
A hard link nem igényel extra helyet és a mat gyorsabban oldódik fel, de a hard linkre alkalmazott változások az eredeti fájlban is tükröződnek. Másrészt a lágy linknek extra helyre van szüksége, de a lágy linkben végrehajtott bármilyen változás nem hat ki az eredeti fájlra. A soft linkek a hard linkkel ellentétben a könyvtárakra is engedélyezettek.