A symlink (más néven szimbolikus link) egy olyan típusú fájl a Linuxban, amely egy másik fájlra vagy mappára mutat a számítógépén. A hivatkozások hasonlóak a Windows parancsikonjaihoz.
Vannak, akik a linkeket "soft linkeknek" nevezik - a Linux / UNIX rendszerek egyfajta linkjének -, szemben a "hard linkekkel".
Különbség a soft link és a hard link között
A soft linkek hasonlóak a parancsikonokhoz, és bármely fájlrendszer másik fájljára vagy könyvtárára mutathatnak.
A merevhivatkozások a fájlok és mappák parancsikonjai is, de nem hozhatók létre más linkek más fájlrendszerben lévő mappához vagy fájlhoz.
Nézzük meg a symlink létrehozásának és eltávolításának lépéseit. Megnézzük azt is, hogy melyek a meghibásodott linkek, és hogyan lehet őket törölni.
Symlink létrehozása
A symlink létrehozásának szintaxisa:
ln -s
ln
a link parancs. A -s
jelző megadja, hogy a linknek puhának kell lennie. -s
néven is beírható -symbolic
.
Alapértelmezés szerint a ln
parancs kemény linkeket hoz létre. A következő érv az path to the file (or folder)
, hogy össze akar kapcsolni. (Vagyis az a fájl vagy mappa, amelyhez parancsikont kíván létrehozni.)
Az utolsó érv pedig path to link
maga (a parancsikon).
Symlink létrehozása fájlhoz - Példa parancs
ln -s /home/james/transactions.txt trans.txt
Parancs futtatása után, akkor képes lesz elérni a /home/james/transactions.txt
az trans.txt
. A módosítások trans.txt
az eredeti fájlban is megjelennek.
Vegye figyelembe, hogy ez a fenti parancs létrehozza a linkfájlt trans.txt
az aktuális könyvtárban. Létrehozhat egy összekapcsolt fájlt egy mappalinkben is:
ln -s /home/james/transactions.txt my-stuffs/trans.txt
Az aktuális könyvtárban kell lennie egy könyvtárnak, amelyet már "my-stuffs" -nak hívnak - ha nem, akkor a parancs hibát vet.
Symlink létrehozása egy mappához - Példa parancs
A fentihez hasonlóan a következőket használjuk:
ln -s /home/james james
Ez létrehozna egy "james" nevű, szinkronizált mappát, amely tartalmazza a /home/james
. A csatolt mappa bármilyen módosítása az eredeti mappát is érinti.
A Symlink eltávolítása
Mielőtt eltávolítaná a szimbólumlinket, érdemes meggyőződnie arról, hogy egy fájl vagy mappa szimbolikus link, hogy ne manipulálja a fájlokat.
Ennek egyik módja:
ls -l
A parancs futtatása a terminálon megjeleníti a fájl tulajdonságait. Ennek eredményeként, ha az első karakter egy kis L betű ('l'), az azt jelenti, hogy a fájl / mappa szimbólum.
A végén egy nyíl (->) is látható, amely jelzi a fájlt / mappát, amelyre a szimlink hivatkozik.
A symlink eltávolításának két módja van:
A Leválasztás használata a Symlink eltávolításához
A szintaxis a következő:
unlink
Ez törli a symlinket, ha a folyamat sikeres.
Még akkor is, ha a symlink mappa formájában van, ne fűzze hozzá a '/' szót, mert a Linux feltételezi, hogy ez egy könyvtár, és unlink
nem tudja törölni a könyvtárakat.
Az rm használata a Symlink eltávolításához
Mint láttuk, a symlink csak egy másik fájl vagy mappa, amely egy eredeti fájlra vagy mappára mutat. A kapcsolat eltávolításához eltávolíthatja a csatolt fájlt.
Ezért a szintaxis a következő:
rm
Például:
rm trans.txt rm james
Ne feledje, hogy a próbálkozás rm james/
hibát eredményez, mert a Linux feltételezi, hogy a „james /” egy könyvtár, amelyhez más opciókra lenne szükség, például a r
és f
. De nem ezt akarjuk. A symlink lehet mappa, de csak a névvel foglalkozunk.
A rm
over előnye, unlink
hogy egyszerre több szimpla linket is eltávolíthat, akárcsak a fájlokkal.
Hogyan lehet megtalálni és törölni a megszakadt hivatkozásokat
Megszakadt hivatkozások akkor fordulnak elő, ha a fájl vagy mappa, amelyre a szimbólum link mutat, megváltoztatja az elérési utat vagy törlődik.
Például, ha „transactions.txt” mozog /home/james
, hogy /home/james/personal
a „trans.txt” láncszem törve. A fájlhoz való minden hozzáférési kísérlet "Nincs ilyen fájl vagy könyvtár" hibát eredményez. Ennek oka, hogy a linknek nincs saját tartalma.
Ha hibás linkeket fedez fel, könnyedén törölheti a fájlt. A megszakadt szimpla linkek megkeresésének egyszerű módja:
find /home/james -xtype l
Ez felsorolja a james
könyvtár összes megszakadt hivatkozását - a fájloktól a könyvtárakig és az alkönyvtárakig.
Az -delete
opció átadása törli őket, így:
find /home/james -xtype l -delete
Csomagolás
A szimbolikus kapcsolat a Linux és a UNIX rendszerek érdekes tulajdonsága.
Létrehozhat könnyen hozzáférhető szimpla linkeket egy fájlra vagy mappára való hivatkozás céljából, amelyhez egyébként nem lenne kényelmes hozzáférni. Némi gyakorlattal meg fogja érteni, hogy ezek hogyan működnek intuitív szinten, és sokkal hatékonyabbá teszik a fájlrendszerek kezelését.