androide

Come rimuovere (eliminare) i collegamenti simbolici in Linux

01 IMPARARE LINUX: VIDEORIPETIZIONI PER CERTIFICAZIONE LINUX LPIC ESAMI 101 E 102

01 IMPARARE LINUX: VIDEORIPETIZIONI PER CERTIFICAZIONE LINUX LPIC ESAMI 101 E 102

Sommario:

Anonim

Un collegamento simbolico, noto anche come collegamento simbolico, è un tipo speciale di file che punta a un altro file o directory. È qualcosa come una scorciatoia in Windows. Un collegamento simbolico può puntare a un file o una directory sullo stesso o su un file system o su una partizione diversi.

In questa guida, ti mostreremo come rimuovere (eliminare) i collegamenti simbolici nei sistemi Linux / UNIX usando i comandi rm , unlink e find .

Prima di iniziare

Per rimuovere un collegamento simbolico, è necessario disporre delle autorizzazioni di scrittura sulla directory che contiene il collegamento simbolico. In caso contrario, verrà visualizzato l'errore "Operazione non consentita".

Quando si rimuove un collegamento simbolico, il file a cui punta non è interessato.

Utilizzare il comando ls -l per verificare se un determinato file è un collegamento simbolico e per trovare il file o la directory a cui punta il collegamento simbolico.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Il primo carattere "l" indica che il file è un collegamento simbolico. Il simbolo “->” mostra il file a cui punta il collegamento simbolico.

Rimuovere i collegamenti simbolici con rm

Il comando rm rimuove determinati file e directory.

Per eliminare un collegamento simbolico, invoca il comando rm seguito dal nome del collegamento simbolico come argomento:

rm symlink_name

In caso di successo, il comando termina con zero e non visualizza alcun output.

Con rm è possibile eliminare più di un collegamento simbolico alla volta. Per fare ciò passare i nomi dei symlink come argomenti, separati da spazio:

rm symlink1 symlink2

Per ricevere una richiesta prima di rimuovere il collegamento simbolico, utilizzare l'opzione -i :

rm -i symlink_name

Per confermare digitare y e premere Enter .

rm: remove symbolic link 'symlink_name'?

Se il collegamento simbolico punta a una directory, non aggiungere la barra / finale alla fine. Altrimenti, riceverai un errore:

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Se il nome dell'argomento termina con / , il comando rm presuppone che il file sia una directory. L'errore si verifica perché, se utilizzato senza l'opzione -d o -r , rm non può eliminare le directory.

Per essere al sicuro, non usare mai l'opzione -r quando si rimuovono i collegamenti simbolici con rm . Ad esempio, se si digita:

rm -f symlink_to_dir/

Il contenuto della directory di destinazione verrà eliminato.

Rimuovere i collegamenti simbolici con unlink

Il comando unlink elimina un determinato file. A differenza di rm , unlink accetta solo un singolo argomento.

Per eliminare un collegamento simbolico, eseguire il comando unlink seguito dal nome del unlink simbolico come argomento:

unlink symlink_name

Se il comando viene eseguito correttamente, non viene visualizzato alcun output.

Non aggiungere la barra / trailing alla fine del nome del unlink simbolico perché unlink non può rimuovere le directory.

Trova ed elimina collegamenti simbolici interrotti

Per trovare tutti i collegamenti simbolici interrotti in una determinata directory, eseguire il comando seguente:

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

Il comando elencherà tutti i collegamenti interrotti nella directory e nelle sue sottodirectory.

find /path/to/directory -maxdepth 1 -xtype l

/path/to/directory/symlink1

Una volta individuati i unlink simbolici interrotti, è possibile rimuoverli manualmente con rm o unlink o utilizzare l'opzione -delete del comando find :

find /path/to/directory -xtype l -delete

Conclusione

Per rimuovere un collegamento simbolico, utilizzare il comando rm o unlink seguito dal nome del collegamento simbolico come argomento. Quando si rimuove un collegamento simbolico che punta a una directory, non aggiungere una barra finale al nome del collegamento simbolico.

rm scollegare il terminale di ricerca