GNU/Linux >> Linux Esercitazione >  >> Linux

Rimuove un collegamento simbolico a una directory

# this works:
rm foo
# versus this, which doesn't:
rm foo/

Fondamentalmente, devi dirgli di eliminare un file , non eliminare una directory . Credo che la differenza tra rm e rmdir esiste a causa delle differenze nel modo in cui la libreria C li tratta ciascuno.

Ad ogni modo, la prima dovrebbe funzionare, mentre la seconda dovrebbe lamentarsi del fatto che foo sia una directory.

Se non funziona come sopra, controlla le tue autorizzazioni. È necessario il permesso di scrittura nella directory contenente per rimuovere i file.


usa il comando "unlink" e assicurati di no avere la / alla fine

$ unlink mySymLink

unlink() cancella un nome dal file system. Se quel nome era l'ultimo collegamento a un file e nessun processo ha il file aperto, il file viene eliminato e lo spazio che stava utilizzando viene reso disponibile per il riutilizzo. Se il nome era l'ultimo collegamento a un file ma tutti i processi hanno ancora il file aperto, il file rimarrà in essere fino a quando l'ultimo descrittore di file che fa riferimento a esso non sarà chiuso.

Penso che questo possa essere problematico se lo leggo correttamente.

Se il nome faceva riferimento a un collegamento simbolico, il collegamento viene rimosso.

Se il nome si riferisce a un socket, fifo o dispositivo, il nome per esso viene rimosso ma i processi che hanno l'oggetto aperto possono continuare a usarlo.

https://linux.die.net/man/2/unlink


Linux
  1. Come aggiornare un collegamento simbolico Linux

  2. Gestore di file Java

  3. wget:nome del file scaricato

  4. Rimuovi il file senza chiedere

  5. Come posso rimuovere un file o una directory chiamata \?

Come rimuovere (eliminare) un file o una directory in Linux

Come rimuovere una directory in Linux

Come rimuovere (eliminare) la directory in Linux

Scollega comando in Linux (Rimuovi file)

Come collegare simbolicamente un file in Linux

Errore I/O su Linux:impossibile rimuovere la directory come root