# this works:
rm foo
# versus this, which doesn't:
rm foo/
En gros, vous devez lui dire de supprimer un fichier , ne pas supprimer un répertoire . Je crois que la différence entre rm
et rmdir
existe à cause des différences dans la façon dont la bibliothèque C les traite.
Dans tous les cas, le premier devrait fonctionner, tandis que le second devrait se plaindre du fait que foo est un répertoire.
Si cela ne fonctionne pas comme ci-dessus, vérifiez vos autorisations. Vous devez disposer d'une autorisation en écriture sur le répertoire contenant pour supprimer des fichiers.
utilisez la commande "unlink" et assurez-vous pas avoir le / à la fin
$ unlink mySymLink
unlink() supprime un nom du système de fichiers. Si ce nom était le dernier lien vers un fichier et qu'aucun processus n'a ouvert le fichier, le fichier est supprimé et l'espace qu'il utilisait est rendu disponible pour être réutilisé. Si le nom était le dernier lien vers un fichier mais que des processus ont encore le fichier ouvert, le fichier restera existant jusqu'à ce que le dernier descripteur de fichier s'y référant soit fermé.
Je pense que cela peut être problématique si je le lis correctement.
Si le nom fait référence à un lien symbolique, le lien est supprimé.
Si le nom fait référence à un socket, fifo ou périphérique, le nom correspondant est supprimé, mais les processus qui ont l'objet ouvert peuvent continuer à l'utiliser.
https://linux.die.net/man/2/unlink