Symbolický odkaz, také známý jako symbolický odkaz, je speciální typ souboru, který ukazuje na jiný soubor nebo adresář. Je to něco jako zkratka ve Windows. Symbolický odkaz může ukazovat na soubor nebo adresář na stejném nebo jiném souborovém systému nebo oddílu.
V této příručce vám ukážeme, jak odstranit (smazat) symbolické odkazy v systémech Linux/UNIX pomocí rm
, unlink
a find
příkazy.
Než začnete #
Chcete-li odebrat symbolický odkaz, musíte mít oprávnění k zápisu do adresáře, který obsahuje symbolický odkaz. V opačném případě se zobrazí chyba „Operace není povolena“.
Když symbolický odkaz odstraníte, soubor, na který odkazuje, nebude ovlivněn.
Použijte ls -l
příkaz ke kontrole, zda je daný soubor symbolickým odkazem, a k nalezení souboru nebo adresáře, na který symbolický odkaz ukazuje.
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
První znak „l“ označuje, že soubor je symbolický odkaz. Symbol „->“ ukazuje soubor, na který symbolický odkaz ukazuje.
Odstranění symbolických odkazů pomocí rm
#
rm
příkaz odstraní dané soubory a adresáře.
Chcete-li odstranit symbolický odkaz, vyvolejte rm
příkaz následovaný symbolickým názvem odkazu jako argument:
rm symlink_name
V případě úspěchu příkaz skončí s nulou a nezobrazí žádný výstup.
Pomocí rm
můžete odstranit více než jeden symbolický odkaz najednou. Chcete-li to provést, předejte názvy symbolických odkazů jako argumenty oddělené mezerou:
rm symlink1 symlink2
Chcete-li před odstraněním symbolického odkazu zobrazit výzvu, použijte -i
možnost:
rm -i symlink_name
Pro potvrzení zadejte y
a stiskněte Enter
.
rm: remove symbolic link 'symlink_name'?
Pokud symbolický odkaz ukazuje na adresář, nepřipojujte /
koncové lomítko na konci. V opačném případě se zobrazí chyba:
rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory
Pokud název argumentu končí /
, rm
příkaz předpokládá, že soubor je adresář. K chybě dochází, protože při použití bez -d
nebo -r
možnost, rm
nelze odstranit adresáře.
Pro jistotu nikdy -r
možnost při odstraňování symbolických odkazů pomocí rm
. Pokud například zadáte:
rm -f symlink_to_dir/
Obsah cílového adresáře bude smazán.
Odstranění symbolických odkazů pomocí unlink
#
unlink
příkaz smaže daný soubor. Na rozdíl od rm
, unlink
přijímá pouze jeden argument.
Chcete-li odstranit symbolický odkaz, spusťte unlink
příkaz následovaný názvem symbolického odkazu jako argument:
unlink symlink_name
Pokud se příkaz provede úspěšně, nezobrazí se žádný výstup.
Nepřipojujte /
koncové lomítko na konci názvu symbolického odkazu, protože unlink
nelze odstranit adresáře.
Najít a odstranit přerušené symbolické odkazy #
Pokud smažete nebo přesunete zdrojový soubor na jiné místo, symbolický soubor zůstane viset (rozbitý).
Chcete-li najít všechny nefunkční symbolické odkazy v daném adresáři, spusťte následující příkaz:
find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2
Příkaz zobrazí seznam všech nefunkčních odkazů v adresáři a jeho podadresářích.
Pokud chcete vyloučit symbolické odkazy, které jsou obsaženy v podadresářích, předejte -maxdepth 1
možnost find
:
find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1
Jakmile najdete poškozené symbolické odkazy, můžete je ručně odstranit pomocí rm
nebo unlink
nebo použijte -delete
možnost find
příkaz:
find /path/to/directory -xtype l -delete
Závěr č.
Chcete-li odstranit symbolický odkaz, použijte buď rm
nebo unlink
příkaz následovaný názvem symbolického odkazu jako argument. Při odstraňování symbolického odkazu, který ukazuje na adresář, nepřipojujte k názvu symbolického odkazu koncové lomítko.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.