# 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