Como os caracteres são provavelmente internacionais, eles provavelmente estão aparecendo como códigos de controle em seu conjunto de caracteres en_US, e é por isso que ls os está mostrando como pontos de interrogação.
Isso pode ser devido à escolha da sua distribuição de apelido ls por padrão no perfil global. Por exemplo:
alias ls='ls -q'
Você pode ver se sua distribuição fez isso digitando no seu shell:
alias ls
Que imprimirá algo como o seguinte:
$ alias ls
alias ls='ls --color=auto'
A página abaixo sugere que, se você fizer "ls -b", verá os códigos octal de controle para saber, pelo menos, quais caracteres estão em uso.
link
Supondo que isso não funcione, você tem outra opção também mencionada mais perto do fim:
Uma ferramenta que eu desconhecia até agora chamada OctalDump (no Debian - / usr / bin / od)
$ ls | od -b
Mostrará a forma octal dos códigos de controle.
$ ls | od -c
Mostrará os caracteres, incluindo qualquer espaço adicional oculto que possa estar no final (observe os espaços extras no final em seu exemplo)
Depois que você souber quais caracteres de controle estão em jogo e se há espaços em branco adicionais ocultos, poderá conseguir abrir caminho para o cd para o diretório, escapando dos caracteres de controle. Caso contrário, você tem algumas opções para renomear o diretório.
A página acima também possui, convenientemente, um método rápido e sujo para remover os caracteres de controle através do comando mv, o qual acho que funcionará, desde que você escape do espaço, mas NÃO escape dos pontos de interrogação (assim fazendo caracteres curingas de caractere único), e desde que não exista mais nada no diretório em que esse diretório não autorizado está. O motivo desses requisitos explícitos é que você está usando apenas caracteres curinga e o espaço único e, portanto, não deseja que o caractere curinga atinja inadvertidamente qualquer outro arquivo ou diretório.
Se o método acima não funcionar, você pode usar o método de localização mencionado por outras respostas, de maneira diferente. Ao invés de tentar cd para o diretório usando o número de inode, que é o que você disse ter tentado, você pode renomeá-lo usando o número de inode. Apenas certifique-se de copiar todo o conjunto de linhas 3 para aquele comando da página acima (substitua a parte "nome-desejado" pelo nome real que você deseja renomear).
Quando o diretório for renomeado, você poderá acessá-lo. Eu só posso esperar que ele também não contenha arquivos com códigos de controle nos nomes, ou você terá que enxaguar e repetir para cada arquivo (e / ou subdiretório) no diretório que acabou de renomear, ponto em que um loop for provavelmente seja prudente apenas nomear cada arquivo como um número, incrementando de 1.: -)