GNU/Linux >> Znalost Linux >  >> Linux

Linux Najít a odebrat všechny symbolické odkazy týkající se adresáře?

Takže mám trochu situaci, kdy jsem vytvořil mnoho symbolických odkazů ve snaze je zprovoznit, zkoušel jsem nejrůznější kombinace .. teď mám tuto chybu:

ls: cannot access /etc/sv/me: Too many levels of symbolic links

V /service/ nebo /etc/sv/ nejsou žádné symbolické odkazy
Jediný způsob, jak mohu tuto chybu vyřešit, je odstranit všechny symbolické odkazy týkající se /service/ nebo /etc/sv/, ale já to neudělám Nevidíte ani symbolické odkazy?

Přijatá odpověď:

Cyklické symbolické odkazy můžete identifikovat pomocí find trik, zkuste toto:

find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null

Funguje to tak, že se filtruje symbolické odkazy a pak se vyloučí cokoli, kde je typ cíle symbolického odkazu některý z možných typů inodů. Jediné, co zůstalo, jsou ty, kde find nelze určit typ cíle, což se děje pouze u cyklických symbolických odkazů (přerušené odpovídají -xtype l )


Linux
  1. Přejmenujte všechny soubory a názvy adresářů na malá písmena v Linuxu

  2. Jak vyhledávat a odstraňovat adresáře rekurzivně v systému Linux

  3. Najděte a odstraňte všechny adresáře s názvem test v linuxu

  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Jak najít a odstranit duplicitní fotografie v Linuxu

  3. Linux:Najít všechny symbolické odkazy daného „původního“ souboru? (reverzní 'readlink')

  1. najít a odstranit soubory s mezerou pomocí příkazu find v Linuxu

  2. Najděte a přejmenujte adresář

  3. Najděte všechny nulabajtové soubory v adresáři a podadresářích