Desativar o caractere contol do DCS

2

Caracteres esotéricos em nomes de arquivos às vezes levam a erros estranhos. Recentemente, fiz backup de arquivos com rsync , percebendo que, em alguns minutos do processo, toda a saída de status foi interrompida. Investigando mais, descobri que a causa era um nome de arquivo com caracteres asiáticos. Um dos símbolos tinha o valor unicode 0x0090 , que eu suponho que meu shell tenha interpretado como o caractere de controle DCS . Como nenhum caractere ST correspondente (valor 0x009C ) jamais foi seguido, isso fez com que todas as saídas parassem. Depois que rsync terminar, todo o texto emitido a seguir será enviado para o terminal de uma só vez.

Já consultei a página de manual stty , mas não consegui encontrar uma maneira de eliminar temporariamente esse símbolo especial de sua função pela duração da execução rsync . Existe alguma maneira de desativar esses personagens?

    
por XZS 21.01.2017 / 13:15

1 resposta

0

Idealmente, o rsync só deve imprimir caracteres imprimíveis.

Se não for o caso, você pode enviar a saída do rsync por meio de um utilitário de filtro, como cat -v , embora apresente algum atraso devido ao buffering. Também não tenho certeza se cat -v é inteligente o suficiente para capturar C1 codificado em UTF-8 ou o byte 0x90 (não está claro qual deles você encontra).

    
por 21.01.2017 / 13:48