GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Alle Symlinks in Bezug auf ein Verzeichnis finden und entfernen?

Ich habe also eine kleine Situation, in der ich viele Symlinks erstellt habe, um sie zum Laufen zu bringen, und alle möglichen Kombinationen ausprobiert habe. Jetzt habe ich diesen Fehler:

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

Es gibt keine Symlinks in /service/ oder /etc/sv/
Die einzige Möglichkeit, diesen Fehler zu beheben, besteht darin, alle Symlinks in Bezug auf /service/ oder /etc/sv/ zu entfernen, aber ich tue es nicht Siehst du nicht einmal die symbolischen Links?

Akzeptierte Antwort:

Sie können zyklische Symlinks mit ein wenig find identifizieren Trickserei, versuchen Sie Folgendes:

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

Dies funktioniert, indem nach Symlinks gefiltert und dann alles ausgeschlossen wird, wo der Typ des Ziels des Symlinks einer der möglichen Inode-Typen ist. Übrig bleiben nur die, wo find kann den Typ des Ziels nicht bestimmen, was nur bei zyklischen Symlinks der Fall ist (defekte entsprechen -xtype l )


Linux
  1. So suchen und entfernen Sie Verzeichnisse rekursiv unter Linux

  2. So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

  3. Linux:Alle Symlinks einer bestimmten 'Original'-Datei finden? (umgekehrter 'Leselink')

  4. Suchen Sie ein Verzeichnis und benennen Sie es um

  5. Finden Sie alle Null-Byte-Dateien in Verzeichnissen und Unterverzeichnissen

So entfernen Sie Verzeichnisse und Dateien unter Linux

Find-Befehl in Linux (Dateien und Verzeichnisse suchen)

So finden und löschen Sie defekte Symlinks in Linux

So finden Sie doppelte Dateien in Linux und entfernen sie

So entfernen Sie Dateien und Verzeichnisse auf einem Linux-Terminal

Linux:Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen finden