Estaba ejecutando un script de Python que no funcionaba bien y solía sudo
crear un archivo llamado >
.
¿Cómo puedo deshacerme de este archivo?
Por supuesto, cuando lo intento sudo rm >
, aparece el error bash: syntax error near unexpected token 'newline'
, porque cree que estoy tratando de redirigir la salida de rm
.
Sus permisos son -rw-r--r--
.
sudo touch >
en un shell daría el mismo error.) Dijiste que era con un script de Python, presumiblemente creado al pasar">"
a algunaos
función. Entoncessudo python <<< 'import os; os.remove(">")'
debería funcionar bien.Respuestas:
Cualquiera de estos debería funcionar:
Tenga en cuenta que los dos últimos comandos, los que usan
find
, encontrarán todos los archivos o directorios nombrados>
en la carpeta actual y todas sus subcarpetas. Para evitar eso, use GNU find:fuente
find
no es asírm
porque es recursivo y eliminará todos los archivos nombradosrm
bajo su árbol de directorios actual, sin importar cuán profundo sea.rm
variantes) son todas iguales. Son solo tres formas diferentes de proteger ese nombre de archivo del shell. Realmente no hay una razón para preferir uno sobre otro.find(1)
? El único problema aquí es que es necesario citar un metacarácter de shell. Hay un millón y uno de programas diferentes que pueden eliminar un archivo, pero usar otra cosa que norm(1)
sea ofuscar la respuesta.sudo find . ! -name . -prune -name '>' -exec rm {} +
.find
no agrega nada para responder la pregunta que se hace.También puedes usar Python para eliminarlo:
Con POSIX
find
:fuente
>
como redirección de salida.Lo que terminé haciendo inicialmente también funciona:
Esto es, por supuesto, una variante del más simple
sudo rm \>
.fuente
Intenté esto como un comentario, pero salió todo en una línea
fuente
Cita el personaje para que el shell no lo interprete como una redirección:
Sin embargo, si tiene otros archivos con caracteres extraños, el método más seguro es abrir un explorador de archivos GUI como
nautilus
y eliminarlo allí.fuente