Hice algo loco en algún momento que creó un archivo llamado -rfen mi sistema de archivos.
Ahora no puedo entender cómo eliminarlo ...
He intentado:
rm "-rf"
rm \-rf
Estos solo salen inmediatamente, arrgh!
¿Alguien sabe cómo eliminar este archivo? Preferiblemente sin limpiar accidentalmente toda mi carpeta.

rmun archivo llamado-rfdesde su sistema sin recordar la sintaxis exacta!rm(in itargcandargv) Por lo tanto, ambos dan como resultado que la matriz["rm", "-rf"]se pase arm, que hace lo que esperarías.*en una carpeta. Incluya uno nombrado-rftambién y mire la diversión ;-)mkdir './-rf '(ls --classify, un valor predeterminado común en un alias de shell, agregará un /)Respuestas:
O
fuente
getopttiene--, lo que debería significar la mayoría de las herramientas modernas de Linux.Otra opción:
... asumiendo que su directorio actual es el que reside el archivo.
fuente
Alternativamente, siempre puede editar el directorio en el que está y eliminar el archivo de esa manera.
y luego simplemente elimine la línea con el archivo (usando D, dd no funcionará).
fuente
vimtenía un modo directo. Claramente, la edición del directorio en sí en un editor de texto no es recomendable ni posible sin un verdadero salto de aro experto. Tenga en cuenta queemacstambién funcionaría, y por la misma razón.Se utiliza una técnica genérica para eliminar nombres de archivos extraños.
para encontrar el número de inodo del archivo y luego usarlo.
No es necesario recordar todos los casos especiales.
fuente
findtenía el poder de eliminar archivos.Aunque conozco el truco "rm - -filename", generalmente cuando de alguna manera obtengo un archivo con un encabezado, en su nombre que quiero eliminar, inicio un administrador de archivos GUI y lo hago desde allí, para eliminar la posibilidad de errores
fuente
Si solo quieres estar seguro:
fuente
En caso de que estés en un Unix que no sea GNU donde te sientas arrastrado de vuelta a la edad de piedra (sin
--sintaxis, sin-inumcambio para encontrar, sin comando de desvinculación, tu editor rechaza editar directorios, etc.) aún puedes ayudarte a ti mismo:Esto hará que find alimente a todos los candidatos potenciales para rm, lo que a su vez solicitará permiso / denegación para cada archivo que se alimente.
En caso de
rmque ni siquiera sea compatible con el-iconmutador (¿HP-UX 10.2 en PA-RISC 1.1?), Tenga más cuidado:fuente
find?Apoyando la respuesta de jleedev , mejoraría con:
estar en modo interactivo y solicitar confirmación, para que pueda estar seguro de lo que elimina. (aunque la solución está bien. Es simplemente para su tranquilidad)
En realidad, incluso usa eso:
para estar seguro de que no estás usando ningún alias.
fuente
Como ya se ha sugerido, siempre he usado la sintaxis
cuando tuve que eliminar un archivo con un guión como prefijo porque - le dice al comando que no busca ningún otro parámetro sino solo nombres de archivo.
Teniéndolo en cuenta, para proteger mi carpeta importante mediante la eliminación accidental de archivos, estaba acostumbrado a crear un archivo vacío llamado simplemente -i que normalmente se coloca en la parte superior de la lista de archivos al resolver la búsqueda *. Entonces el comando
cuando se ejecuta en mi carpeta protegida se explota, durante la ejecución, en el comando:
y el shell, en lugar de eliminar todo inmediatamente, deja de pedir una confirmación (como requiere la opción -i).
fuente
-ipirateo del nombre de archivo: "I" era escéptico, ¡pero se prueba!La última vez que tuve este problema, lo resolví con:
pitón
importar os
os.remove ("- rf")
fuente
Martin Clayton tiene razón.
Es muy simple y lógico. Si se dan las opciones es siempre
-XXX, o--CCCCpor lo que si se pone una./o la ruta completa-rfno puede ser considerado como una opción y se le considera como una cadena normal.Funciona con "todos" los nombres de archivos extraños.
fuente
rm - -rf la mayoría de las herramientas de GNU aceptan - como marcador de fin de opciones
fuente