Entonces descargué un álbum de música de aMule y está ubicado en el .aMule/Incoming
directorio. Intenté sacarlo con el siguiente comando:
mv albumName.rar ~
Esto me dejó con un archivo ~
al .aMule/Incoming
que no pude cambiarle el nombre porque la tilde está reservada para el directorio de inicio. Sé que puedo acceder a él a través de Nautilus mostrando archivos ocultos. ¿Cómo puedo sacarlo en la terminal?
Actualizar Así es como se ve ahora
manuzhang@manuzhang-R458-R457:~/.aMule/Incoming$ ls -l
total 328
-rw-r--r-- 1 manuzhang manuzhang 297266 2012-03-19 12:07 ~
-rw-r--r-- 1 manuzhang manuzhang 34479 2011-10-11 19:51 [kat.ph]friends.season.1.with.english.subtitles.torrent
Respuesta1
mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
Siempre puedes proteger un carácter que tiene un significado especial en el shell poniendo una barra invertida delante de él.
Siempre puedes decirle al shell que interprete una secuencia literalmente poniéndola entre comillas simples. El único carácter que no se puede poner dentro de una cadena literal es la comilla simple, ya que indica el final de la cadena literal. Puedes usar '\''
en su lugar; significa "fin del literal, el carácter '
, comienzo del literal", pero puedes considerarlo como una forma extraña de poner una comilla simple dentro de una cadena literal entre comillas simples.
El carácter ~
sólo es especial al principio de una ruta, por lo que si pones una indicación de directorio, ~
será el nombre del archivo en ese directorio.
Tenga en cuenta que si el nombre del archivo comienza con -
, solo funcionará el último de estos tres métodos. Esto se debe a que -
no es especial para el caparazón; tiene un significado especial para el comando: indica una opción. Otra forma de protegerse -
contra este significado especial es anteponer la opción especial --
: --
en una línea de comando indica el final de las opciones, solo los nombres de archivos (u otros argumentos que no sean opciones) pueden aparecer después.
Tenga en cuenta también que el comando que muestra debería haber copiado el archivo a su directorio de inicio, ya que ~
el shell debería haber interpretado el carácter. Es posible que haya escrito mal y haya creado un archivo que no se llama ~
. Ejecute ls -q
o ls -Q
para ver si el nombre del archivo contiene un carácter no imprimible. Si eso no proporciona ninguna indicación visual, intente con ls | od -t o1
, que mostrará el código octal para cada byte en el nombre del archivo. En ksh, bash o zsh, puede usarlo $'\123'
en una línea de comando para especificar un carácter mediante su código octal. Alternativamente, es posible que pueda encontrar un patrón que coincida con el archivo. Por ejemplo, si determina que la longitud del nombre del archivo es 3 y que los únicos otros archivos cuya longitud es 2 son foo
y bar
, puede mover el archivo con
mv ./[^bf]?? ~/albumName.rar
Y si está dispuesto a usar el mouse y el nombre está compuesto de caracteres imprimibles que no sabe escribir: copie y pegue el nombre del archivo de la salida de ls
.
Respuesta2
Especifique una ruta al archivo.
cat ./~
Respuesta3
La actualización pegada muestra que se trata de algún carácter ASCII o Unicode alto, no una simple tilde... ¿Puedes usar mc
otro administrador de archivos? ¿Qué tal mover todo?demásfuera de ese directorio y luego use la función de finalización con tabulación?