A Linux szimbolikus linkjei fantasztikus jellegűek, de megszakadhatnak és semmit sem mutatnak. Itt van, hogy lokalizálják a törött szimbolikus linkeket, azok áttekintése, és távolítsa el őket a rendszer, ha kell.
Szimbolikus hivatkozások 101
Szimbolikus linkek , Más néven „soft linkek” és a „szimbolikus linkeket” egy formája hivatkozásokat, amelyek mutathat fájlokat és könyvtárakat. A szimklink úgy néz ki, mint egy rendszeres fájl vagy könyvtár egy fájlkezelő ablakban. Ezenkívül bemutatta a terminál ablakban lévő fájllistában. A fájl vagy könyvtár, amelyhez a szimklinkpontok bárhol lehetnek a fájlrendszerben.
Például tegyük fel, hogy van egy szimbolikus a saját könyvtárban az úgynevezett „Dave-link”, amely rámutat arra, hogy egy fájlt a „text-fájl.txt” máshol található a fájlrendszerben fa. Parancsok használata a symlink automatikusan alkalmazza a fájl, amelybe mutat. Ha megpróbálja használni
macska
vagy
Kevésbé
A szimulációban ténylegesen meglátja a "TEXT-FILE.TXT" fájl tartalmát.
A szabványos Linux telepítés sok szimbólumot tartalmaz. Még ha nem hoz létre magát, az operációs rendszer használja őket. Alkalmazás telepítési rutinjai gyakran használják a szimklinkeket, amelyek a futtatható fájlokra mutatnak. Ha a szoftver frissített bináris fájl helyett az új verzió, és minden symlinks folytatni a munkát, mint korábban, amíg az új fájl neve ugyanaz, mint a régi.
Könnyedén láthatunk néhány szimbólumot
ls
A gyökérkönyvtárban. Néhány bejegyzés más színnel jelenik meg
Ubuntu 20.10
Teszt gép, világoskéken jelennek meg.
A következőket írjuk be:
LS /
Egy mélyebb megjelenést tudunk venni a
-l
(hosszú lista) opció. Írjuk be a következő parancsot, hogy megnézzük az összes "lib" bejegyzést és az egyetlen "bin" bejegyzést:
LS -L / LIB * / bin
Az egyes sorok kezdetén egy "L", amely jelzi, hogy az elem egy szimlink. A szöveg után "- & gt;" azt mutatja, hogy mi a symlink mutat. Példánkban a célok minden könyvtárak.
A jogosultságokat olvasni, írni és végrehajtani a tulajdonos, a csoport és mások számára. Ezek az alapértelmezett hamis bejegyzések. Nem tükrözik azokat a tényleges engedélyeket, amelyeken a szimklinkok pontot mutatnak. Ez a célfájl vagy könyvtár engedélyei, amelyek elsőbbséget élveznek, és a fájlrendszer tiszteletben tartják.
Törött szimuláció
A szimklás törött (vagy balra lógó), amikor a fájl, amelyen az informatikai pontok törlődnek, vagy egy másik helyre költöznek. Ha az alkalmazás eltávolítási rutinja nem működik megfelelően, vagy megszakad, mielőtt befejeződik, akkor lehet, hogy megtört szimulációval rendelkezik.
Ha valaki manuálisan törli a fájlt anélkül, hogy tudná a szimbólumokat, akkor ezek a szimklinkok már nem működnek. Olyan leszek, mint a közúti jelek, amelyek egy olyan városra mutatnak, amelyet bulldozed.
Könnyen láthatjuk ezt a viselkedést egy "Hello" nevű symlink használatával az aktuális könyvtárban. A következőket írjuk be, használva
ls
látni ezt:
LS -L
Azt mutatja, hogy egy "HTG" nevű program egy "bin" címtárban. Ha "futtatjuk" a szimklinkot, végrehajtja a programot számunkra:
./ Hello
Most ellenőrizhetjük, hogy ez az, ami közvetlenül a program futtatásával történik:
../ bin / htg
A várt módon ugyanazt a választ kapjuk. Töröljünk a programfájlt:
RM ../bin/htg
Most, amikor megnézzük a szimklinkot, látjuk, hogy piros színű, mert Linux tudja, hogy törött. Azt is elmondja nekünk, hogy mit jelentettek, így cserélhetjük a fájlt, újrafordíthatjuk a programot, vagy mindent megteszünk a szimuláció javításához.
Megjegyzendő, hogy ha megpróbáljuk futtatni a symlink, a hiba megkapjuk hivatkozásokat a symlink nevét, hanem a program nevét, amelyhez a symlink pontokat.
A következőket írjuk be:
./ Hello
Törött szimuláció megtalálása
A legtöbb modern változat
megtalálja
megvan a
Xtype
(kiterjesztett típus) opció,
amely egyszerűsíti találni törött symlinkek
. Mi most az
b
zászló
Xtype
, Hogy mondja el, hogy keresni linkeket. használata
megtalálja
és
Xtype
az alábbiak szerint, anélkül, hogy bármely más
típus
zászlók, erők
Xtype
hogy visszatérjen törött linkek:
találni. -xtype l
Futtatva a tesztünkben home könyvtár megállapítja jó néhány törött symlinkek. Figyeljük meg, hogy a keresés rekurzív alapértelmezésben, ezért megkeresi az összes alkönyvtárat automatikusan.
A „hello” szimlinkelt szakítottunk szándékosan szerepel, mint vártuk. Egy másik symlinks kapcsolódik a Firefox böngésző, a többi társított pattan.
Ha a kimenetet át
WC
a ... val
-l
(Vonalak) opciót, akkor számíthatunk a vonalak, ami ugyanaz, mint számítva a törött symlinks.
A következőket írjuk be:
találni. -xtype l | wc -l
Mi tájékoztatták, hogy a 24 tört rá mutató szimbolikus linkeket semmit.
Keressen, felülvizsgálata, majd távolítsa
Mielőtt belevágok, és törölje az összes törött symlinks, nézd át az eredmények a
megtalálja
parancs. Hátha van érvényes indok minden a törött symlinks.
Néha a symlink lehet a probléma, hanem a cél fájlt. Ha a symlink hozták létre tévesen azt utalhat semmi, de az igazi cél van jelen. Újra létre a linkről lenne a fix ebben az esetben.
Az is lehetséges, hogy a látszólag tört symlink van használatban, mint valami mást, mint a mutató egy file lock vagy más / nem felel meg mutató. Firefox teszi ezt; ez az, amit az első symlink listánkon van. Firefox nem használt teszt gépen, szóval ez biztos számunkra, hogy törölje azt.
Az is lehetséges, a cél csak akkor van jelen időnként, és ez a várt (és kívánatos) viselkedését, hogy az adott szoftver. Lehet, hogy a cél fájl átmásolja egy másik gépre, vagy a felhő, az ellátja funkcióját, és ezt követően törli újra, csak ki kell cserélni egy másik programot, a következő ciklusban.
A törött symlink is lehet tünete a szoftver telepítése nem sikerült. Ebben az esetben a törlés helyett a szimbolikus hivatkozás, akkor akár kézzel kijavítani vagy ismételje meg a telepítést.
Miután kijavította a hibás linkeket meg kell tartani, ismételje meg a parancsot, hogy hajtsa végre a keresést. A fix symlinks akkor az lenne jelen a keresési eredményeket.
A biztonság kedvéért, akkor a legjobb, hogy korlátozza a symlink költöztetés saját könyvtárakat. Legyen nagyon óvatos a futó ezeket a parancsokat root, vagy a rendszer könyvtárakat.
Eltávolítása Broken szimbolikus linkekhez
Az
-exec
(Végre) opció futtatja a parancsokat a
megtalálja
Keresési eredmények. Megyünk használat
rm
törölni minden törött link alatt található. Az
{}
lecserélődik a nevét, minden törött symlink, mint mindegyik felfedezik
megtalálja
.
Van, hogy egy pontosvesszőt (
;
), Hogy megszünteti a parancsok listáját akarjuk
-exec
futni. Fogjuk használni egy rep (
\
) „Menekülési” a pontosvessző, így ez részeként kell kezelni a
megtalálja
parancs, hanem valami
Bash
kell eljárni.
A következőket írjuk be:
találni. -xtype l -exec rm {} \;
Mi vissza a parancssorba nem utal arra, hogy bármi is történt. Hogy ellenőrizze a hibás linkeket eltávolították, akkor ismételjük meg a parancsot kell keresni őket, a következők szerint:
találni. -xtype l
Nincsenek megfelelő eredményeket, amelyek segítségével a törött symlinks eltávolították.
Ne feledje, hogy véleményét First
Ismét mindig időt arra, hogy vizsgálja felül a listát symlinks futtatása előtt a parancsot, hogy törölje őket. Elkerülheti megsemmisítését Ön nem biztos abban futtatásával a parancsot, hogy törölje őket a megfelelő könyvtárakat.
Például, a fenti, mi lehetett volna futtatni a parancsot a „.snap” könyvtárba, majd kézzel eltávolítjuk a magányos „hello” link alatt található. Ez hagyta volna a Firefox zár szimlinkelt érintetlenül.