Dado que los caracteres son probablemente caracteres internacionales, es probable que aparezcan como códigos de control en su conjunto de caracteres en_US, por lo que ls los muestra como signos de interrogación.
Esto puede deberse a la elección de su distribución de alias's ls por defecto en el perfil global. Por ejemplo:
alias ls='ls -q'
Puede ver si su distribución lo ha hecho escribiendo en su shell:
alias ls
Lo cual imprimirá algo como lo siguiente:
$ alias ls
alias ls='ls --color=auto'
La página vinculada a continuación sugiere que si hace "ls -b", verá los códigos de control octal para que sepa al menos qué caracteres están en uso.
http://www.arsc.edu/arsc/support/howtos/nonprintingchars/
Suponiendo que eso no funciona, tiene otra opción que también se menciona más abajo:
Una herramienta que desconocía hasta ahora llamada OctalDump (en Debian - / usr / bin / od)
$ ls | od -b
Le mostrará la forma octal de los códigos de control.
$ ls | od -c
Le mostrará los caracteres, incluido cualquier espacio en blanco adicional oculto que pueda estar al final (tenga en cuenta los espacios adicionales al final en su ejemplo)
Una vez que sepa qué personajes de control están en juego y si hay espacios en blanco ocultos adicionales, puede encontrar una forma de cd al directorio escapando de los personajes de control. De lo contrario, tiene un par de opciones para cambiar el nombre del directorio.
La página de arriba también, convenientemente, tiene un método rápido y sucio para eliminar los caracteres de control a través del comando mv, que creo que funcionará, siempre y cuando escapes del espacio, pero NO escapes los signos de interrogación (por lo tanto, los convierte en un solo carácter comodines), y siempre que no exista nada más en el directorio donde se encuentra este directorio falso. La razón de estos requisitos explícitos se debe a que está utilizando solo caracteres comodín y el espacio único, por lo que no desea que el comodín coincida inadvertidamente con ningún otro archivo o directorio.
Si el método anterior no funciona, es casi seguro que puede usar el método de búsqueda mencionado por otras respuestas de una manera diferente. En lugar de intentar cd al directorio usando el número de inodo, que es lo que usted dijo que ha intentado, puede cambiarle el nombre usando el número de inodo. Solo asegúrese de copiar el conjunto completo de 3 líneas para ese comando de la página anterior (sin embargo, reemplace la parte "nombre deseado" con el nombre real al que desea cambiarle el nombre).
Una vez que se cambia el nombre del directorio, debería poder acceder a él. Solo puedo esperar que no contenga también archivos con códigos de control en los nombres, o tendrá que enjuagar y repetir para cada archivo (y / o subdirectorio) en el directorio que acaba de cambiar de nombre, en ese momento un bucle for probablemente sea sabio nombrar cada archivo como un número, incrementando desde 1. :-)
cd */
podría funcionar.*
debería expandir una descripción comprensible del directorio, ecd
ignora argumentos adicionales. Otra forma podría ser utilizar un administrador de archivos gráfico (incluido el MC basado en terminal) o los navegadores de árbol de archivos integrados en, por ejemplo, Vim. También puede experimentar con el-exec
cambio afind, not with
cd` directamente (que es un shell incorporado) pero con egls
y otras herramientas.