Estoy usando la terminal en una máquina Ubuntu y hay un archivo que me gustaría eliminar. El nombre del archivo es \
(solo una barra invertida).
Ahora por lo general solo haría
rm filename
Sin embargo, si lo hago rm \
, creo que estoy tratando de escribir un comando de varias líneas.
¿Cómo puedo eliminar este archivo? Sé que podría usar el sistema de archivos GUI, pero eso no es muy eficiente.
Entonces, ¿cómo puedo eliminar (en la terminal) un archivo llamado \
?
code
bloque aquí en este comentario!)fsck
. Seriamente. Si/
existe un archivo llamado , su sistema de archivos está dañado.*
yo mismo ...Respuestas:
Uso
rm \\
(escapar de la barra invertida con otra barra invertida). Tenga en cuenta que esto también funciona de manera similar, para los directorios nombrados\
(usando cualquiera de los dosrmdir
orm
con la-r
bandera)Ejemplo:
fuente
rm '\'
(pero norm "\"
).\
carácter se utiliza como carácter de escape en cadenas delimitadas con comillas dobles. El dichorm "\"
se analizará en una cadena no cerrada, ya que la segunda comilla se usa con un carácter de escape (y, por lo tanto, se analizará como el carácter de comillas dobles en sí, y no como el final de una cadena). Por lo tanto, la terminal esperará hasta que termine la cadena con otra"
. El método equivalente para usar comillas dobles aquí seríarm "\\"
(que es directamente equivalente a ambosrm '\'
yrm \\
, como ya confirmó).Una táctica general para eliminar manualmente archivos con caracteres incómodos en sus nombres es
Esto le pedirá que elija si desea eliminar o no cada archivo en el directorio.
fuente
rm -i ./?
./
También puede desvincular haciendo referencia al inodo de un archivo
fuente
Verifique primero el inodo del archivo. ls -li
137791 -rw-rw-r--. 1 svr svr 366 11 de marzo 15:57
el inodo de "\" es "137791 y luego use el comando find para eliminar" \ "con el número de inodo.
encontrar . -inum 137791 -exec rm -i {} \;
rm: eliminar el archivo normal `./ \ '? si
"\" se eliminará entonces.
fuente