Poiché i personaggi sono probabilmente personaggi internazionali, probabilmente appaiono come codici di controllo nel tuo set di caratteri en_US, motivo per cui li sta mostrando come punti interrogativi.
Ciò può essere dovuto alla scelta della tua distribuzione di alias per impostazione predefinita nel profilo globale. Per esempio:
alias ls='ls -q'
Puoi vedere se la tua distribuzione lo ha fatto digitando nella tua shell:
alias ls
Che stamperà qualcosa di simile al seguente:
$ alias ls
alias ls='ls --color=auto'
La pagina collegata sotto suggerisce che se fai "ls -b", vedrai i codici di controllo ottali in modo da sapere almeno quali caratteri sono in uso.
http://www.arsc.edu/arsc/support/howtos/nonprintingchars/
Supponendo che non funzioni, hai un'altra opzione menzionata più vicino in fondo:
Uno strumento di cui non ero a conoscenza fino ad ora chiamato OctalDump (su Debian - / usr / bin / od)
$ ls | od -b
Ti mostrerà la forma ottale dei codici di controllo.
$ ls | od -c
Ti mostrerà i personaggi, inclusi eventuali spazi bianchi aggiuntivi nascosti che potrebbero essere alla fine (nota gli spazi extra alla fine nel loro esempio)
Una volta che sai quali sono i personaggi di controllo in gioco e se ci sono spazi bianchi nascosti aggiuntivi, potresti essere in grado di creare un modo per cd nella directory sfuggendo ai caratteri di controllo. In caso contrario, hai un paio di opzioni per rinominare la directory.
La pagina sopra ha anche, convenientemente, un metodo rapido e sporco per rimuovere i caratteri di controllo tramite il comando mv, che penso funzionerà, purché sfugga allo spazio, ma NON sfuggire ai punti interrogativi (rendendoli così singolo carattere caratteri jolly) e finché non esiste nient'altro nella directory in cui si trova questa directory canaglia. Il motivo di questi requisiti espliciti è perché si utilizzano solo caratteri jolly e il singolo spazio e quindi non si desidera che il carattere jolly corrisponda inavvertitamente a qualsiasi altro file o directory.
Se il metodo sopra non funziona, puoi quasi sicuramente usare il metodo find menzionato da altre risposte, in modo diverso. Invece di provare a cd nella directory usando il numero di inode, che è quello che hai detto di aver provato, puoi rinominarlo usando il numero di inode. Assicurati solo di copiare l'intero set di 3 righe per quell'unico comando dalla pagina sopra (sostituisci la parte "nome-desiderato" con il nome effettivo in cui vuoi rinominarlo comunque).
Dopo aver rinominato la directory, dovresti essere in grado di accedervi. Posso solo sperare che non contenga anche file con codici di controllo nei nomi, o dovrai risciacquare e ripetere per ogni file (e / o sottodirectory) nella directory che hai appena rinominato, a quel punto un ciclo for probabilmente è saggio nominare ogni file come numero, aumentando da 1. :-)
cd */
potrebbe funzionare.*
dovrebbe espandere una descrizione comprensibile della shell della directory ecd
ignorare gli argomenti extra. Un altro modo potrebbe essere quello di utilizzare un file manager grafico (incluso il MC basato su terminale) o i navigatori di file tree integrati, ad esempio Vim. Puoi anche sperimentare direttamente il-exec
passaggio afind, not with
cd` (che è una shell integrata) ma con es.ls
E altri strumenti.