Quelle commande dois-je utiliser pour supprimer un fichier appelé `-rf`?

J'ai fait quelque chose de fou à un moment donné, qui a créé un fichier appelé -rf sur mon système de fichiers.
Maintenant, je ne peux pas comprendre comment le supprimer …

J'ai essayé:

 rm "-rf" rm \-rf 

Ceux-ci sortent immédiatement, arrgh!

Quelqu'un sait comment supprimer ce fichier? De préférence, sans nettoyer accidentellement mon dossier entier.

8 Solutions collect form web for “Quelle commande dois-je utiliser pour supprimer un fichier appelé `-rf`?”

 unlink -rf 

Ou

 rm -- -rf 

Une autre option:

 rm ./-rf 

… le nom de votre répertoire actuel est celui où réside le fichier.

Alternativement, vous pouvez toujours modifier le répertoire dans et enlever le fichier de cette façon.

 vim . 

Puis supprimez la ligne avec le fichier (utilisez D, dd ne fonctionnera pas).

Une technique générique pour supprimer des noms de fichiers étranges est à utiliser.

  ls -li 

Pour trouver le nombre d'inodes de fichier, puis utiliser.

 find ./ -inum <number of file> -delete 

Il n'est pas nécessaire de se souvenir de tous les cas spéciaux.

Même si je connais l'astuce "rm – -filename", généralement quand j'ai en quelque sorte un fichier avec un leader – en son nom que je veux supprimer, je démarre un gestionnaire de fichiers GUI et le fais partir de là pour éliminer les chances Des erreurs.

Si vous voulez juste être sûr:

  mv -- -rf remove.-rf [[check]] rm remove.-rf 

Juste au cas où vous êtes sur un non-GNU Unix où vous vous sentez retourné à l'âge de la pierre (sans syntaxe, commutateur no -inum pour trouver, pas de commande de désinstallation, votre éditeur refuse les répertoires d'édition, etc.), vous pouvez Toujours vous aider:

 find . -name '-rf' -print | xargs rm -i 

Cela entraînera la recherche de tous les candidats potentiels à rm qui, à leur tour, demandera l'autorisation / le déni pour chaque fichier qu'il est alimenté.

Dans le cas où votre rm ne supporte même pas le commutateur -i (HP-UX 10.2 sur PA-RISC 1.1, n'importe qui?), Soyez prudent:

 find . -name '-rf' -print # check that find's output is exactly and only what you need to delete find . -name '-rf' -print | xargs rm 

En soutenant la réponse de jleedev , je m'améliorerais avec:

 rm -i -- -rf 

Être en mode interactif et demander confirmation, afin que vous puissiez vraiment être sûr de ce que vous supprimez. (Bien que la solution soit correcte. C'est simplement pour votre tranquillité d'esprit)

En fait, même utiliser cela:

 \rm -i -- -rf 

Pour être sûr que vous n'utilisez aucun alias.

  • Désinstallation de Homebrew messed up git
  • Clarification sur les signaux (sighup), les travaux et le terminal de contrôle
  • Qu'est-ce que le «rc» dans «.bashrc», etc.?
  • Comment puis-je réparer ma PS1 personnalisée pour envelopper une longue commande sur plusieurs lignes au lieu d'une seule ligne?
  • Quelle est l'origine de l'invite UNIX $ (dollar)?
  • Grep tous les fichiers .java dans un répertoire pour une chaîne particulière
  • moins est plus? Est-ce moins? Je suis si confus
  • Comment interpréter les attributs SMART?
  • Quelles commandes puis-je utiliser pour réinitialiser et effacer mon terminal?
  • Comment copier un fichier sans utiliser scp dans une session ssh?
  • Comment puis-je trouver des fichiers plus grands ou plus petits que x octets?
  • Soyons le génie de l'ordinateur et du réseau.