J'ai créé par inadvertance un fichier appelé -r
dans mon répertoire personnel. Maintenant, je ne peux pas m'en débarrasser:
rm -rf
rm: missing operand
Try 'rm --help' for more information.
Autres tentatives:
rm /-/r
rm: cannot remove ‘/-/r’: No such file or directory
Un autre:
rm \-r
rm: missing operand
Try 'rm --help' for more information.
Existe-t-il un moyen de supprimer ce fichier sans supprimer tout le répertoire?
Dans ce cas, vous devez utiliser le double tiret (--
) dans vos arguments de commande.
Le but est de dire à la commande que ce qui suit ne doit pas être considéré comme un argument de la commande mais comme une simple entrée. Dans le cas de rm, un nom de fichier ou de répertoire.
Tapez donc rm -- -r
et vous devriez vous débarrasser de ce fichier.
Il y a plusieurs façons de le faire:
Utilisez le --
qui signifie la fin des indicateurs d’option et le début de la liste des arguments de nombreux programmes (y compris rm
).
rm -- -r
Utilisez le chemin complet
rm /home/you/directory/-r
ou, à partir du même répertoire (votre répertoire actuel est appelé .
):
rm ./-r
Utilisez find
find . -name "-r" -exec rm {} \;
ou, pour obtenir tous ces fichiers
find . -name "-*" -exec rm {} \;
Utilisez un hack laid. Déplacez tous les éléments dans un autre répertoire (le fichier -r
échouera pour la même raison que le fait rm
), supprimez le répertoire d'origine (qui supprimera le fichier) et déplaçons le tout vers l'arrière. Donc, en supposant que votre fichier -r
se trouve dans ~/foo
:
$ mkdir ~/bar
$ for f in *; do mv "$f" ../bar/; done
mv: invalid option -- 'r'
Try 'mv --help' for more information.
$ rm -rf ~/foo
$ mkdir ~/foo && cd ~/foo
$ mv ~/bar/* .
$ rmdir ~/bar
Vous pouvez également supprimer ces fichiers (en commençant par un '-') avec cette commande:
rm ./-r
Voir la page de manuel rm:
Pour supprimer un fichier dont le nom commence par un '-', par exemple '-foo', utilisez l'une des commandes suivantes:
rm -- -foo rm ./-foo
Ou vous pouvez spécifier le chemin complet du répertoire dans la commande rm
,
Exemple:
rm -rf ~/Desktop/-r
Vous pouvez également utiliser la commande unlink (si vous en avez), qui ne prend aucune option et un seul argument. Donc, unlink -- -r
va supprimer un fichier nommé -r