A link a Linuxban egy speciális fájl, amely egy másik fájlra vagy könyvtárra utal. Ily módon egy fájl egyszerre több helyen is elhelyezhető. Ha az eredeti fájlt törlik, a hivatkozás megmarad. Ez összeomlásokhoz vezethet, és általában eltömíti a rendszert.
Először is ismertessük a módszert, amellyel ellenőrizhetjük, hogy a fájl valóban link-e. Ez kényelmesen elvégezhető az ls
segédprogrammal. Ezt követően nézzük meg az eltávolítás három módszerét, mindegyiknek megvannak a maga sajátosságai.
Az ls
segítségével kényelmesen megnézhetjük a fájlról szóló információkat. A segédprogram használatához adjuk meg a -l
opciót, és adjuk meg az elérési utat. Példaként vegyük a ~/symlinks/link_1
fájlt:
$ ls -l ~/symlinks/link_1
Egy teljes katalógust ellenőrizhetünk linkek után:
$ ls -l ~/symlin
A nem szükséges fájlokat a neve után egy jellegzetes nyíl jelöli.
Az rm
paranccsal a Linux fájlrendszerében lévő bármely fájl törölhető, beleértve a linkeket is. Vagyis alkalmas a mi feladatunkhoz. Itt fontos megemlíteni, hogy a link törlése nem érinti az eredeti fájlt vagy könyvtárat.
A terminálban futtassuk a parancsot:
$ rm ~/symlinks/link_1
Továbbá, ha részletes információkat szeretne kapni az eljárásról, adja hozzá a parancshoz a -v
opciót:
$ rm -v ~/symlinks/link_1
Ezenkívül ellenőrizheti, hogy a hivatkozás eltűnt-e a könyvtárból. Ehhez használja a korábban ismertetett ls
parancsot.
Most már tudja, hogyan lehet eltávolítani egy Linux szimbolikus linket.
Az unlink
segédprogram arra szolgál, hogy fájlokat távolítson el a Linux fájlrendszeréből. Csak a link elérési útvonalát kell megadni:
$ unlink ~/symlinks/link_1
Az adott feladat keretein belül az rm és az unlink szinte azonos módon működik. Most térjünk át az utolsó módszerre.
A find
parancs segítségével kereshetünk és törölhetünk linkeket egy adott könyvtárban. Ez azt jelenti, hogy nem kell az ls
parancsot ezen felül használni.
Az előző két lehetőséggel ellentétben eléggé fejlett funkciókkal rendelkezik, például a keresési feltételek beállításával. De a szintaxis emiatt sem olyan egyszerű.
A kereséshez meg kell adnunk egy könyvtárat és néhány paramétert:
$ find ~/symlinks/ -type l -print
A -type l
paraméterre azért van szükség, hogy csak a szimbolikus linkeket válasszuk ki, a -print
pedig a teljes név kiadásához. A -maxdepth
paraméter segítségével pedig megadhatjuk a keresés mélységét a beágyazott könyvtárak szerint. Ha 1-et adunk meg, akkor a keresés csak magában a könyvtárban történik, a csatolmányok nélkül:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Ha sok link van a könyvtárban, akkor megadhat egy keresési mintát a find
parancshoz. Példaként vegyünk egy olyan helyzetet, amikor csak olyan rejtett linkeket szeretnénk megtalálni, amelyek utolsó módosításának dátuma legfeljebb 30 nappal ezelőtt volt:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Két kritériumot adtunk hozzá:
-név
- név alapján történő keresés.-mtime
- a módosítás ideje alapján.Minden megtalált linket a megadott minta szerint törölhetünk. Ebből a célból a -print
értéket a -delete
érték váltja fel:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Az utasítás végén foglalkozzunk a sehová sem vezető törött linkek keresésével és törlésével, például az eredeti fájl vagy könyvtár törlése után. Erre a célra a -xtype l
paraméter alkalmas. -print
nem szükséges a kimenethez:
$ find ~/broken_links/ -xtype l
Ennek eredményeképpen az összes törött link megjelenik a terminálban. Ha el akarja távolítani őket, adja hozzá a parancs végéhez a -delete
paramétert:
$ find ~/broken_links/ -xtype l -delete
Ezzel befejeződtek a linkek törlésére vonatkozó utasítások Linuxban.