recusa-se a cp / rsync / etc alguns arquivos com caracteres estranhos

1

Temos um servidor Windows com nomes de arquivos contendo caracteres incomuns. Por exemplo, picture.jpg (o caractere incomum está entre o e e o .jpg ).

Montamos com mount -t cifs -o 'ro,iocharset=utf8' //server/source-share /dest-path e iocharset=utf8 pode ser removido, isso não muda nada.

Quando usamos ls , tudo funciona. Mas o cp / rsync e outros comandos falham nesses arquivos:
cp -r /dest-path /tmp - > cp: cannot stat '/dest-path/picture .jpg': No such file or directory
Você pode notar que o caractere especial é exibido como um espaço.

Com o rsync, o erro é file has vanished: "/dest-path/picture .jpg" (com espaço também).

Alguma ideia para superar esse comportamento?

UPDATE: tentou rsync -rhicov e rsync -av como sugerido. Nenhuma melhoria, como esperado, porque essas opções não têm nada a ver com esse problema.
rsync -av /dest-path/* \tmp fornece o mesmo resultado ( file has vanished )
find /dest-path -name "*.jpg" -ls funciona corretamente.
find /dest-path -print0 | rsync -av --files-from=- --from0 ./ /tmp fornece erro rsync: link_stat "/dest-path/picture .jpg" failed: No such file or directory (2)
Apenas testei tar czf archive.tgz /dest-path : error File removed before we read it

BEWARE: ls e find exibem os nomes dos arquivos, mas os caracteres especiais são exibidos como espaços (acabei de verificar com um editor hexadecimal). Alguns outros caracteres especiais são tratados corretamente e funcionam corretamente com o rsync.
Então, isso pode ser um problema dentro do módulo CIFS.

    
por Gregory MOUSSAT 07.06.2018 / 01:04

0 respostas

Tags