Hice algo loco en algún momento que creó un archivo llamado -rf
en 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.
rm
un archivo llamado-rf
desde su sistema sin recordar la sintaxis exacta!rm
(in itargc
andargv
) 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-rf
tambié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
getopt
tiene--
, 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
vim
tení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 queemacs
tambié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
find
tení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-inum
cambio 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
rm
que ni siquiera sea compatible con el-i
conmutador (¿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
-i
pirateo 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--CCCC
por lo que si se pone una./
o la ruta completa-rf
no 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