Deshacerse de un archivo llamado "-d"

Deshacerse de un archivo llamado "-d"

Posibles duplicados:
¿Cómo elimino un archivo llamado "-p" de bash?
Cómo eliminar un archivo con este nombre en Linux: -]???????q
¿Qué comando necesito usar para eliminar un archivo llamado `-rf`?

Accidentalmente creé un archivo llamado: -d

Intenté usar comillas simples y dobles, así como comodines para eliminarlo, pero cada vez que "rm" me da este error:

Advertencia: la opción --directory (-d) no está documentada y no está operativa. Utilice -rf para eliminar directorios que no estén vacíos. rm: falta operando. Pruebe `rm --help' para obtener más información.

¿Cómo me deshago del archivo?

Respuesta1

rm -- -d

--significa "fin de opciones". Cualquier cosa que se encuentre más adelante en la línea de comando que sigue a esto se interpreta como un argumento (es decir, el nombre del archivo en su caso) y no como una opción.

Respuesta2

rm ./-d

es la respuesta a tu pregunta.

Respuesta3

Usar '--' es, con diferencia, el más fácil en este caso específico. Sin embargo, una solución más general si te topas con un archivo con caracteres de control no imprimibles es hacer referencia al archivo mediante inodo:

% ls -ali aFileWithFunnyCharacters
      9215 -rw-r-----   1 chris  chris         0 Sep  8 16:55 aFileWithFunnyCharacters
% find . -xdev -inum 9215 -exec rm {} \;
% ls -ali aFileWithFunnyCharacters
aFileWithFunnyCharacters: No such file or directory

Respuesta4

Gnu-find tiene una opción -delete:

find -name "-d" -delete

más podrías intentarlo

find -name "-d" -exec rm {} ";" 

pero la -- -solución anterior es más corta, y muchos programas usan la forma de detener la interpretación de banderas con --, usando la biblioteca getopt, por lo que aprenderla es algo útil en general.

Pero buscar/eliminar también es algo muy útil de aprender. Tenga en cuenta que ambos ejemplos eliminarán archivos con el nombre "-d" de forma recursiva, lo que puede no suceder con frecuencia, pero si tiene un archivo, llamado "-d", es posible que tenga más. :)

información relacionada