Como “cd” para o diretório não utf8

3

Como posso alterar o diretório para o diretório em que o nome consiste em caracteres padrão não ASCII?

root@senior:/media/data/hudba/# ls . -l
total 3096
-rwxr-xr-x 2 user users 3160192 Jul 31  2006 Lucie BĂ­lĂĄ - esemes.mp3
drwxr-xr-x 1 user users    8192 Mar 28  2008 ĂplnÄahĂĄ

Como entrar nesse diretório (segunda entrada)? Ou (melhor) renomeá-lo sem usar mc ou outra ferramenta ou ter que remontar a partição?

    
por Buksy 05.04.2013 / 00:45

2 respostas

2

Certifique-se de que não seja UTF-8.

echo $LANG ; Se a string retornada não terminar em .UTF-8 , seu terminal não está configurado para a codificação correta.

Separação de separador ou curinga, quando possível.
Se o primeiro caractere ou três for ASCII, tente usar a conclusão da tabulação para fazer o trabalho por você. O servidor remoto fornecerá os bytes brutos, e nesse ponto você pode simplesmente retornar, mesmo que não pareça que faz sentido.

Obviamente, a conclusão da tabulação não se aplica neste caso, mas, como David apontou, você pode usar um curinga cd com base em uma substring.

Use abstração.
Se você não pode transmitir os códigos de caracteres corretos, nem mesmo o primeiro caractere, você praticamente tem para usar outras ferramentas para resolver o problema, como persuadir o comando find a identificar apenas o diretório em questão e execute uma renomeação nele.

  1. Use ls -i no diretório pai para identificar o inode associado.
  2. Execute find . -type d -inum inode# , substituindo o número do inode conforme apropriado. Se esse comando funcionar e retornar apenas um único diretório (aquele que você deseja renomear), anexe-o ao final do comando find: %código%

( -okdir mv {} ILikeThisNameBetter \; é a variante de -okdir que solicita se você realmente quer ou não fazer algo, o que é o caminho certo a seguir neste caso)

Crédito a Aaron Bush pela abordagem do inode, eu estava fazendo isso por tamanho de arquivo em uma revisão anterior.

    
por 05.04.2013 / 01:08
1

Aspas duplas para o nome do diretório devem funcionar bem.

 cd "ĂplnÄahĂĄ" 

mesmo para nomes com espaços

 cd "ĂplnÄahĂĄ hfjksf" 
    
por 05.04.2013 / 14:21