Un collegamento in Linux è un file speciale che fa riferimento a un altro file o directory. In questo modo, un file può essere collocato in più posti contemporaneamente. Quando il file originale viene cancellato, il collegamento viene mantenuto. Questo può causare crash e in generale intasare il sistema.
Per cominciare, spieghiamo il metodo per verificare che il file sia effettivamente un collegamento. Per farlo è sufficiente utilizzare l'utility ls
. Dopodiché, esaminiamo tre metodi di rimozione, ognuno con le sue peculiarità.
Con l'aiuto di ls
è comodo vedere le informazioni sul file. Per utilizzare l'utility, occorre dare l'opzione -l
e specificare il percorso. A titolo di esempio, prendiamo il file ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
È possibile verificare la presenza di collegamenti in un intero catalogo:
$ ls -l ~/symlin
Un file non necessario è contrassegnato da una freccia caratteristica dopo il suo nome.
Il comando rm
può essere usato per cancellare qualsiasi file nel file system di Linux, compresi i collegamenti. È quindi adatto al nostro compito. È importante ricordare che l'eliminazione del collegamento non influisce sul file o sulla directory originale.
Eseguire il comando nel terminale:
$ rm ~/symlinks/link_1
Inoltre, per ottenere informazioni dettagliate sulla procedura, aggiungere l'opzione -v
al comando:
$ rm -v ~/symlinks/link_1
Inoltre, è possibile verificare se il collegamento è scomparso dalla directory. A tale scopo, utilizzare il comando ls
descritto in precedenza.
Ora sapete come rimuovere un collegamento simbolico in Linux.
L'utilità unlink
è progettata per rimuovere i file dal file system di Linux. È sufficiente specificare il percorso del collegamento:
$ unlink ~/symlinks/link_1
Nell'ambito dell'operazione in questione, rm e unlink funzionano in modo quasi identico. Passiamo ora all'ultimo metodo.
Con l'aiuto del comando find
è possibile cercare ed eliminare i collegamenti in una determinata directory. Ciò significa che non è necessario utilizzare anche ls
.
A differenza delle due opzioni precedenti, ha caratteristiche piuttosto avanzate, come ad esempio l'impostazione dei criteri di ricerca. Ma anche la sintassi non è così semplice.
Per effettuare una ricerca, è necessario specificare una directory e alcuni parametri:
$ find ~/symlinks/ -type l -print
Il parametro -type l
è necessario per selezionare solo i collegamenti simbolici, -print
per visualizzare il nome completo. Con l'aiuto di -maxdepth
è possibile specificare la profondità della ricerca per directory annidate. Se si specifica 1, la ricerca verrà eseguita solo sulla directory stessa, senza allegati:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Se nella directory sono presenti molti collegamenti, è possibile specificare un modello di ricerca per il comando find
. A titolo di esempio, prendiamo una situazione in cui vogliamo trovare solo i collegamenti nascosti con una data di ultima modifica non superiore a 30 giorni fa:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
Sono stati aggiunti due criteri:
-nome
- ricerca per nome
.-mtime
- in base all'ora di modifica.Tutti i collegamenti trovati possono essere eliminati secondo lo schema specificato. A questo scopo -print
è sostituito da -delete
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Alla fine dell'istruzione ci occupiamo della ricerca e dell'eliminazione dei collegamenti interrotti che non portano da nessuna parte, ad esempio dopo aver cancellato il file o la directory originale. Il parametro -xtype l
è adatto a questo scopo. -print
non è richiesto per l'output:
$ find ~/broken_links/ -xtype l
Di conseguenza, tutti i collegamenti interrotti saranno visualizzati nel terminale. Per rimuoverli, aggiungere -delete
alla fine del comando:
$ find ~/broken_links/ -xtype l -delete
Questo completa le istruzioni per eliminare un collegamento in Linux.