Comment supprimer un fichier commençant par «>» ou d'autres caractères inhabituels [fermé]


8

J'ai accidentellement créé un fichier appelé

> option[value='2016']

Comment puis-je le supprimer?

My attempts:

$ rm "> option[value='2016']"
rm: cannot remove ‘> option[value='2016']’: No such file or directory
$ rm \> o*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘o*’: No such file or directory
$ rm `> o*`                                                                               
rm: missing operand
Try 'rm --help' for more information.
$ rm \> option*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘option*’: No such file or directory
$ rm '\> option*'                                                                         
rm: cannot remove ‘\\> option*’: No such file or directory
$
$ rm "\> option*"                                                                         
rm: cannot remove ‘\\> option*’: No such file or directory

Liste des fichiers:

HAPPY_PLUS_OPTIONS/
o*
op*
> option[value='2016']
> option[value='ALFA ROMEO']
README.md
rspec_conversions/
.rubocop.yml
SAD/
SAD_PLUS_OPTIONS/

Avez-vous essayé d'utiliser des caractères génériques? rm * option *
RageAgainstTheMachine

La question suivante semble ridicule, mais avez-vous essayé les gestionnaires de fichiers GUI?
Incnis Mrsi

Réponses:


16

une autre option

ls -i 

qui donnent (avec une valeur d'inode appropriée)

5233 > option[value='2016']   5689 foo

puis

find . -inum 5233 -delete

en option (pour prévisualiser)

find . -inum 5233 -print

vous pouvez également ajouter -xdevs'il y a un autre système de fichiers en dessous.


9

Vous pouvez également utiliser l'option "-" qui selon l'homme:

 The rm command uses getopt(3) to parse its arguments, which allows it to
 accept the `--' option which will cause it to stop processing flag options at
 that point.  This will allow the removal of file names that begin with a dash
 (`-').  For example:
       rm -- -filename

J'ai donc essayé:

touch -- "> option[value='2016']"

Et je l'ai retiré avec:

rm -- "> option[value='2016']"

Le moyen le plus simple de vérifier si le nom de fichier a été correctement saisi:

rm -- ">[tab]

Et laissez l'auto-complétion faire le travail.

PS: Aussi tentant que cela puisse paraître, ne créez pas de nom de fichier "-rf *". De mauvaises choses peuvent arriver.

-rw-r--r--    1 stephan  staff      0 Sep 13 14:11 -rf *

Utilisez toujours "-i" pour être sûr.

iMac:~ stephan$ rm -i -- "-rf *"
remove -rf *? Y

C'est de loin la meilleure réponse, de loin.

8

Le problème initial était un espace de premier plan, donc

rm " > option[value='2016']"
    ^ here

travaux.

Mise à jour de la question concernant les fichiers commençant par> etc.


3

Pour une approche interactive (souvent plus sûre):

S'il y a des fichiers nommés spéciaux dans le répertoire courant.

Vous pouvez utiliser rm ./puis TabTabpour répertorier les fichiers, puis vous pouvez sélectionner le fichier et le supprimer.


Entrez Tabdeux fois pour rechercher des fichiers.
Shellmode

1

Car rmil n'y a rien de magique >. Il vous suffit de vous assurer que le crochet angulaire y arrive (= empêcher le shell de l'interpréter comme une redirection).

> "> option[value='2016']"  #create it
rm "> option[value='2016']" #remove it

#remove all files in the current directory that have > in them
rm -- {,.}*\>*                 

Si vous êtes sur un système moderne raisonnable, vous devriez pouvoir obtenir des noms correctement échappés avec une tabulation complète.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.