Fizetési módok Abuse

Linkek eltávolítása Linuxban

10.04.2022, 01:05

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.

Hogyan törölhet egy hivatkozást

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.

Annak ellenőrzése, hogy linkről van-e szó

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

Linkek eltávolítása Linuxban

Egy teljes katalógust ellenőrizhetünk linkek után:

$ ls -l ~/symlin

Linkek eltávolítása Linuxban

A nem szükséges fájlokat a neve után egy jellegzetes nyíl jelöli.

Az Rm használata

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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.

Linkek eltávolítása Linuxban

Most már tudja, hogyan lehet eltávolítani egy Linux szimbolikus linket.

Az UNLINK használata

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

Linkek eltávolítása Linuxban

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 használata

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.

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

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

Linkek eltávolítása Linuxban

Ezzel befejeződtek a linkek törlésére vonatkozó utasítások Linuxban.