2009-07-20 12:40:03 +0000 2009-07-20 12:40:03 +0000
101
101

Comment supprimer un lien symbolique vers un annuaire ?

J'ai fait un lien symbolique avec la commande suivante :

ln -s ../test5

Je veux le supprimer maintenant mais mon rm échoue :

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx 1 peter peter 8 Jul 20 15:30 test5 -> ../test5/

Comment puis-je supprimer mon lien symbolique ? (Ubuntu 8.10, bash)

Réponses (6)

122
122
122
2009-07-20 12:51:01 +0000

Supprimer la barre oblique :

Avec l'invite :

$ rm test5

Sans invite :

$ rm -f test5

21
21
21
2009-07-20 12:54:12 +0000

Essayez rm test5 (sans la barre oblique d'entraînement).

La barre oblique indique que “test5” est un répertoire alors qu'il s'agit en fait d'un fichier lien vers un répertoire.

14
14
14
2009-07-20 13:06:36 +0000

Vous pouvez lancer la suppression de la barre oblique de fin :

$ rm test5

Cela supprimera le fichier (c'est-à-dire le lien symbolique).

Alternativement, vous pouvez utiliser la fonction “unlink” :

$ unlink test5

Encore une fois, vous devez omettre la barre oblique de fin car vous essayez de dissocier le lien symbolique et non le répertoire.

0
0
0
2019-05-02 03:05:12 +0000

Le problème dans le PO est le / qui suit, donc test5/ lance une erreur mais test5 fonctionne.

Je préfère utiliser unlink plutôt que rm car mon intention est plus claire et il n'y a aucune chance de supprimer par erreur le vrai répertoire au lieu du lien. Assurez-vous qu'il n'y a pas de / après le nom du répertoire, par exemple

unlink test5
0
0
0
2018-02-14 23:23:37 +0000

Parfois, si vous utilisez la saisie semi-automatique pour nommer le lien que vous souhaitez supprimer, il se peut que vous ne voyiez pas de barre oblique, mais qu'elle soit à moitié là et que cette barre oblique invisible provoque toujours une erreur de suppression lorsque vous essayez de supprimer ce lien.

Donc dans ce cas, tapez caractère par caractère le lien à supprimer comme “test5”, par exemple rm test5.

-1
-1
-1
2009-07-20 12:42:27 +0000

Je me sens bête de demander, mais avez-vous essayé rm -r ? Comme il s'agit d'un lien symbolique, il ne devrait pas supprimer la cible.

Edit : je viens d'essayer, c'est correct

Edit 2 : rmdir dit dans sa première ligne de la page de manuel qu'il supprime les répertoires vides. Je pense que parce que c'est un lien, il a vérifié le bit de répertoire dans les propriétés de son fichier, mais parce que rmdir ne soupçonne pas que c'est le cas, il crache des erreurs. Il suffit d'utiliser rm -r