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.
- Use
ls -i
no diretório pai para identificar o inode associado. - 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.