Szimbolikus link
A szimbolikus link, rövidítve symlink vagy szimlink egy olyan fájl, melynek tartalma egy másik fájl (útvonallal együtt). A symlink egyúttal külön fájltípus: innen tudják a programok a használat módját.
A legtöbb program a symlinket arra használja, hogy eljusson a mögötte levő fájlhoz (indirekt fájlelérés). Miután a symlink maga is fájl, bizonyos utasítások (pl. törlés, átnevezés) a symlinkfájlra vonatkoznak az általa mutatott fájl helyett. Az ls -l
parancs mind a célfájlt, mind a symlinket kilistázza, és a sor első karakterében l
betűvel jelzi a symlink típust.
Symlink létrehozása Linuxban:
ln -s fájl symlink
fájl lehet symlink-től különböző fájlrendszerben, és a létrehozáskor nem is kell létezzék. fájl utólag is megszűnhet pl. fájlrendszer lecsatolás, átnevezés vagy törlés miatt. Ilyenkor a symlink „halott”.
A symlink jogosultságának nincs jelentősége, csak a mutatott fájlénak, ezért mindenki által írható/olvashatóként jön létre.
A readlink
és file
Unix-parancs kiírja a symlink által mutatott fájlt (a symlinkfájl tartalmát).
A symlink könyvtárra is mutathat, így a cd
paranccsal a symlinken keresztül is eljuthatunk egy másik könyvtárba. Az „igazi” (könyvtárakon át vezető) utat a realpath útvonal
parancs írja ki.
A symlink és a hard link a nevén kívül szinte semmiben nem hasonlít egymásra. A hard link egy másik név az eredeti fájlra, vagyis a két fájl tartalma azonos, és a létrehozás után nem is lehet megmondani, melyik volt az eredeti fájl és melyik a hard link. Hard link csak ugyanabban a fájlrendszerben hozható létre, mint az eredeti, és a mutatott fájl nem lehet könyvtár. Ettől ui. megszűnne a könyvtár faszerkezete: kör jönne létre benne, és a könyvtárszerkezetet végigjáró programok könnyen végtelen ciklusba eshetnének. Néhány Unix rendszer ennek ellenére a root számára mégis megengedi hard link létrehozását könyvtárra.
Források
[szerkesztés]- SYMLINK(7) (man7.org)
További információk
[szerkesztés]- (angol)Symbolic link in Windows Vista
- (angol)Windows Vista Gets Symlinks!
- (angol)Inside the Windows Vista Kernel