Symbolické odkazy na Linuxu jsou fantastická funkce, ale mohou se zlomit a levý ukazuje na nic. Zde je, jak najít rozbité symbolické odkazy, zkontrolovat je a odebrat je z vašeho systému, pokud potřebujete.
Symbolické odkazy 101.
Symbolické odkazy , nazývané také "Měkké odkazy" a "SymLinks", jsou formou zkratek, které mohou ukazovat na soubory a adresáře. Symlink vypadá jako pravidelný soubor nebo adresář v okně Správce souborů. Zobrazuje se také jako záznam v seznamu souborů v okně terminálu. Soubor nebo adresář, ke kterému mohou být body SymLink kdekoli v stromovém stromu souborů.
Například, řekněme, že máte sylník ve svém domovském adresáři s názvem "Dave-Link", který ukazuje na soubor s názvem "Text-file.txt" umístěný někde jinde v stromu souboru stromu. Příkazy, které používáte na symbolu, jsou automaticky aplikovány na soubor, do kterého to body. Pokud se pokusíte použít
kočka
nebo
méně
Na SymLink, budete skutečně zobrazit obsah souboru "text-file.txt".
Standardní instalace Linux obsahuje mnoho symbolů. I když nevytvoříte sami sebe, operační systém je používá. Instalační rutiny aplikace často používají symboly do bodu spustitelných souborů. Když je software aktualizován, binární soubor je nahrazen novou verzí a všechny symbolické odkazy pokračují v práci jako dříve, pokud je název nového souboru stejný jako starý.
Můžeme snadno vidět nějaké symbolické odkazy pomocí
ls.
v kořenovém adresáři. Některé položky jsou zobrazeny v jiném barvě
Ubuntu 20.10.
Zkušební stroj, jsou zobrazeny ve světle modré.
Zadáváme následující:
LS /
Můžeme vzít hlubší vzhled pomocí
-l.
(dlouhý výpis). Zadáváme následující příkaz se podívat na všechny položky "lib" a jeden "bin" vstup:
ls -l / lib * / bin
Na začátku každého řádku je "L," který označuje, že položka je sylinka. Text po "- & gt; ukazuje, jaký symbol odkazuje. V našem příkladu jsou cíle všechny adresáře.
Oprávnění jsou uvedena jako číst, psát a spustit pro majitele, skupinu a další. Jedná se o výchozí falešné záznamy. Oni neodrážejí skutečná oprávnění na objekty, ve kterých se Symlinks bod. Je to oprávnění na cílovém souboru nebo adresáři, který má přednost a jsou poctěny systémem souborů.
Rozbité symboly
Symlink je přerušen (nebo vlevo visí), když soubor, ve kterém IT body je vymazán nebo přesunut do jiného umístění. Pokud se rutina odinstalace aplikace nefunguje správně, nebo je přerušena dříve, než dokončí, můžete být ponecháni s rozbitými symbráty.
Pokud někdo ručně vymaže soubor bez znalosti Symlinks poukazuje na to, tyto symbolické odkazy již nebudou fungovat. Budou mít rádi dopravní značky ukazující na město, které bylo buldozed.
Toto chování můžeme snadno vidět pomocí symbolu s názvem "Hello" v aktuálním adresáři. Zadáváme následující použití
ls.
vidět to:
LS -L
Ukazuje na program nazvaný "htg" v adresáři s názvem "bin". Pokud "spustíme" Symlink, provede pro nás program:
./ Dobrý den
Nyní můžeme zkontrolovat, zda je to, co se děje spuštěním programu přímo:
../ bin / htg
Jak se očekávalo, dostaneme stejnou odpověď. Smazat soubor programu:
rm ../bin/htg
Teď, když se podíváme na Symlink, vidíme, že je uveden v červené barvě, protože Linux ví, že je zlomený. To také říká, co to zvyklí, takže můžeme soubor nahradit, znovu zkompilovat program nebo dělat cokoliv je nutné k opravě sylový odkaz.
Všimněte si, že pokud se pokusíme spustit Symlink, chyba, kterou dostaneme odkazy na jméno sylanka, spíše než název programu, ke kterému Symlink body.
Zadáváme následující:
./ Dobrý den
Nalezení rozbitých symbolů
Nejmodernější verze
nalézt
mít
xtype.
(rozšířený typ) možnost,
což zjednodušuje zjištění rozdělené symlinks
. Budeme používat
l
vlajka s
xtype.
, Se říct, že hledat odkazy. Použitím
nalézt
a
xtype.
takto, aniž by některý z druhého
typ
vlajky, síly
xtype.
vrátit nefunkční odkazy:
najít. -xtype l
Spuštění příkazu v našem testovacím domovském adresáři najde poměrně málo zlomených symbolické odkazy. Všimněte si, že je vyhledávání rekurzivní ve výchozím nastavení, takže vyhledá všechny podadresáře automaticky.
Dále jen „ahoj“ symlink rozešli jsme záměrně uveden, jak jsme očekávali. Jednou z dalších symbolické odkazy souvisí s prohlížečem Firefox, a zbytek jsou spojeny s patentky.
Budeme-li trubka výstup skrze
toaleta
s
-l.
Možnost (linky), můžeme počítat linky, což je stejné jako počítání rozbité symbolické odkazy.
Zadáváme následující:
najít. -xtype l | wc -l
Jsme informováni, že máme 24 zlomené symbolické odkazy směřující k ničemu.
Najít, recenze, a pak Remove
Předtím, než budete spěchat do a odstranit všechny rozbité symbolické odkazy, prohlédnout výsledky typu
nalézt
příkaz. Podívejte se, jestli tam je k tomu pádný důvod pro některý z rozbitých symbolické odkazy.
Někdy symlink by mohl být problém, spíše než cílový soubor. Pokud byl vytvořen symlink nesprávně to by mohlo ukazovat na nic, ale skutečným cílem je přítomen. Znovu vytvořit symbolický odkaz by oprava v tomto případě.
Je také možné, že zdánlivě zlomený symlink je používán jako něco jiného, jako je indikátor zámku souboru nebo jiného go / no go indikátoru. Firefox to dělá; že to, co první symlink v našem seznamu je. Firefox není používán na našem testovacím stroji, i když, tak je to bezpečné pro nás jej odstranit.
Je také možné, že cíl je přítomen pouze periodicky, a to je očekávaný (a žádoucí) chování dané software. Možná, že cílový soubor je zkopírován z jiného počítače nebo oblaku, že plní svou funkci, a poté je opět odstraněn, jen aby byl nahrazen jiným programem v příštím cyklu.
Rozbité symlink může být také příznakem instalace softwaru, který selhal. V takovém případě se namísto vymazání symbolický odkaz, měli byste buď ručně opravit nebo zopakovat instalaci.
Když jste pevně na nefunkční odkazy, které potřebujete zachovat, opakujte příkaz k provedení vyhledávání. Pevné symlinks by pak měl chybět z výsledků vyhledávání.
Z bezpečnostních důvodů, je nejlepší omezit své symlink stěhování do svých vlastních adresářů. Být velmi opatrný na provoz těchto příkazů jako root, nebo na systémových adresářích.
Vyjmutí Broken symbolické odkazy
. \ T
-exec
(Spustit) volba spouští příkazy na straně
nalézt
Výsledky vyhledávání. Jedeme do užívání
rm
vymazat každou zlomenou symbolický odkaz. . \ T
{}
řetězec je nahrazen názvem každé rozbité symlink, protože každý z nich je objeven
nalézt
.
Musíme použít středník (
;
) Ukončit seznam příkazů chceme
-exec
běžet. Budeme používat zpětné lomítko (
\
) Na „útěku“ středník, takže je považován za součást
nalézt
Příkaz, spíše než něco
praštit
by měla jednat.
Zadáváme následující:
najít.; -xtype l -exec rm {} \
Jsme se vrátil do příkazového řádku se žádné náznaky, že se něco stalo. Chcete-li ověřit, že nefunkční odkazy byly odstraněny, opakujeme povel podívat se na ně, a to následovně:
najít. -xtype l
K dispozici nejsou žádné odpovídající výsledky, což znamená, že rozbité symlinks byly odstraněny.
Pamatovat přezkoumat nejprve
Opět platí, že vždy mít čas na revizi seznamu symbolické odkazy před spuštěním příkazu k jejich odstranění. Můžete se vyhnout mazání jakéhokoliv si nejste jisti, spuštěním příkazu k jejich odstranění do příslušných adresářů.
Například výše, jsme mohli spustit příkaz v „.snap“ adresář a ručně odstranit osamělý „Hello“ symbolický odkaz. To by opustil zámek Firefox nalinkujte nedotčeny.