O arquivo com nomes estranhos pode ser um arenque vermelho. Suas ferramentas estão realizando vários truques para fazer você pensar que algo está quebrado.
O nome do arquivo está em UTF-8, então você deve export LANG=en_US.UTF-8
permitir que seus comandos usem o nome do arquivo sem atrito. Execute o comando locale
sem argumentos para verificar as variáveis de ambiente atuais.
Ou, se você insistir em usar a localidade "C", use ls -b
para ter ls seqüências de escape de impressão em vez de pontos de interrogação. Então você pode usar $'364\…'
como um argumento no bash.
O comando find
se recusa covardemente a escrever caracteres não-textuais em um tty. Em outras palavras, find
e find | cat
se comportam de maneira diferente, com o último escrevendo os nomes sem aspas, é por isso que find | xargs
está de fato funcionando. Uma maneira mais robusta de escrever isso é find -print0 | xargs -0
para evitar que possíveis caracteres de espaço em branco sejam interpretados por xargs.
Isso não explica o "Nenhum arquivo ou diretório" - por todos os meios, seu sistema de arquivos pode conter um erro - mas deve permitir que você declare sua intenção na linha de comando com mais precisão.
No começo, não achei relevante, mas tenho o hábito de prefixar nomes de arquivos estranhos com ./
para impedir que comandos os interpretem. A barra lateral mostrava uma pergunta relacionada "rsync: dois-pontos em nomes de arquivos" , o que pode seja a causa raiz do seu erro de rsync.