GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare ed eliminare i collegamenti simbolici interrotti in Linux

Qualche tempo fa abbiamo spiegato cosa sono i collegamenti soft e hard link con esempi pratici. A volte potresti dimenticare di eliminare i collegamenti software non utilizzati o i collegamenti simbolici che non puntano da nessuna parte. Mantenere i collegamenti inutilizzati sul filesystem non danneggia il sistema, tranne occupare un po' di spazio su disco. Quindi non ha senso tenerli. Trova ed elimina i collegamenti simbolici interrotti sul tuo sistema Linux.

Potrebbero esserci molti modi per trovare collegamenti simbolici interrotti o collegamenti software in Linux. Qui ho fornito due metodi.

Collegamenti simbolici è una riga di comando, utilità di manutenzione del collegamento simbolico. Scansiona la directory data ed elenca i collegamenti simbolici se ce ne sono.

Symlinks è disponibile nei repository ufficiali di molte distribuzioni Linux.

Per installare i collegamenti simbolici su CentOS , esegui:

$ sudo yum install symlinks

Su Fedora :

$ sudo dnf install symlinks

Su Debian , Ubuntu , Linux Mint :

$ sudo apt-get install symlinks

Su Ubuntu , devi abilitare il [universe] deposito.

$ sudo add-apt-repository universe

Dopo aver installato i collegamenti simbolici, eseguire il comando seguente per trovare ed eliminare i collegamenti simbolici interrotti:

$ symlinks -dr <directory-path>

Il comando precedente eseguirà la scansione dei collegamenti simbolici interrotti nella directory specificata e li cancellerà.

Ecco,

  • d - elimina i collegamenti simbolici penzolanti
  • r - ricorsivo

Lascia che ti mostri un esempio. Creerò un file chiamato "abc" nella directory corrente.

$ touch abc

Quindi creo un collegamento simbolico chiamato 'xyz' per abc file:

$ ln -s abc xyz

Ora elimina il file effettivo, ad esempio abc .

$ rm abc

Come forse già saprai, una volta eliminato il file effettivo, il collegamento simbolico non ha valore. Perché è solo una scorciatoia e ora è interrotta.

Per trovare i collegamenti simbolici interrotti, esegui:

$ symlinks .

Per favore notare il punto (. ) alla fine. Significa che stiamo cercando collegamenti interrotti nella directory corrente.

Risultato di esempio:

dangling: /home/sk/xyz -> abc

Qui, xyz è sospeso perché abbiamo eliminato il file sorgente effettivo "abc" . Quindi eliminiamo questo collegamento interrotto usando il comando:

$ symlinks -dr .

Risultato di esempio:

dangling: /home/sk/xyz -> abc
deleted: /home/sk/xyz -> abc

Infine, esegui symlinks comando ancora una volta per assicurarsi che ci siano collegamenti interrotti rimanenti.

Possiamo anche usare find comando per eliminare i collegamenti simbolici interrotti.

Per trovare collegamenti simbolici interrotti, ma non eliminarli, esegui:

$ find . -xtype l

Questo comando elencherà i collegamenti simbolici interrotti nella directory corrente. Se desideri cercare collegamenti simbolici interrotti su un percorso specifico, ad esempio /usr/local/ , fai:

$ find /usr/local/ -xtype l

Risultato:

Il comando precedente cercherà i collegamenti interrotti in /usr/local/ e le sue sottodirectory. Come puoi vedere nell'output sopra, ci sono molti collegamenti simbolici interrotti.

In alternativa, utilizzare il comando seguente per elencare i collegamenti simbolici non utilizzati:

$ find /usr/local/ -xtype l ! -exec test -e {} \; -print

È anche possibile controllare dove puntano i collegamenti interrotti. È buona norma assicurarsi di eliminare i collegamenti simbolici previsti.

$ find /usr/local/ -xtype l -exec ls -l {} \+

Risultato di esempio:

lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/drracket -> /home/sk/racket/bin/drracket
lrwxrwxrwx 1 root root 27 Jan 21 08:53 /usr/local/bin/gracket -> /home/sk/racket/bin/gracket
lrwxrwxrwx 1 root root 32 Jan 21 08:53 /usr/local/bin/gracket-text -> /home/sk/racket/bin/gracket-text
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/mred -> /home/sk/racket/bin/mred
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/mred-text -> /home/sk/racket/bin/mred-text
lrwxrwxrwx 1 root root 23 Jan 21 08:53 /usr/local/bin/mzc -> /home/sk/racket/bin/mzc
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/mzpp -> /home/sk/racket/bin/mzpp
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/mzscheme -> /home/sk/racket/bin/mzscheme
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/mztext -> /home/sk/racket/bin/mztext
lrwxrwxrwx 1 root root 30 Jan 21 08:53 /usr/local/bin/pdf-slatex -> /home/sk/racket/bin/pdf-slatex
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/plt-games -> /home/sk/racket/bin/plt-games
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-help -> /home/sk/racket/bin/plt-help
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-r5rs -> /home/sk/racket/bin/plt-r5rs
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/plt-r6rs -> /home/sk/racket/bin/plt-r6rs
lrwxrwxrwx 1 root root 34 Jan 21 08:53 /usr/local/bin/plt-web-server -> /home/sk/racket/bin/plt-web-server
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/racket -> /home/sk/racket/bin/racket
lrwxrwxrwx 1 root root 24 Jan 21 08:53 /usr/local/bin/raco -> /home/sk/racket/bin/raco
lrwxrwxrwx 1 root root 28 Jan 21 08:53 /usr/local/bin/scribble -> /home/sk/racket/bin/scribble
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/setup-plt -> /home/sk/racket/bin/setup-plt
lrwxrwxrwx 1 root root 26 Jan 21 08:53 /usr/local/bin/slatex -> /home/sk/racket/bin/slatex
lrwxrwxrwx 1 root root 29 Jan 21 08:53 /usr/local/bin/slideshow -> /home/sk/racket/bin/slideshow
lrwxrwxrwx 1 root root 27 Jan 21 08:53 /usr/local/bin/swindle -> /home/sk/racket/bin/swindle

Per eliminare tutti i collegamenti interrotti in una volta, eseguire:

$ sudo find /usr/local/ -xtype l -delete

Oppure,

$ sudo find /usr/local/ -xtype l ! -exec test -e {} \; -delete

Sostituisci /usr/local/ con il tuo percorso.

Lettura consigliata:

  • Come elencare i collegamenti simbolici su Linux

Spero che aiuti.


Linux
  1. Come trovare e uccidere il processo Zombie in Linux

  2. Come trovare e rimuovere le foto duplicate in Linux

  3. Come creare ed eliminare un gruppo di utenti in Linux

  4. Come eliminare una directory e una cartella in Linux?

  5. Come trovare ed eliminare directory e file vuoti in Linux

Come trovare ed eliminare directory vuote in Linux

Come trovare e chiudere le porte aperte in Linux

Come trovare file duplicati in Linux e rimuoverli

Come trovare la data e l'ora di installazione del sistema operativo Linux

Come trovare collegamenti simbolici interrotti in Linux

Come trovare il PID e il PPID di un processo in Linux