Por que o rsync cria uma pasta sem nome no destino?

1

Eu uso o seguinte script para colocar pastas com o prefixo old_ e seu conteúdo em um disco rígido USB. Por algum motivo, rsync cria uma pasta sem nome na qual os dados são copiados.

rsync -vrhm --stats --progress --include='**/' --include='**/old_*/**'  --exclude='@Recycle' --exclude='*' /share/Projekte/ /share/02-18-Harburg/

Como posso mudar isso?
Além disso, gostaria de saber se é possível para rsync excluir esses arquivos que foram transferidos anteriormente da origem?

EDITAR:

Isto é o que eu recebo quando tento tabular o diretório:

$ cd 02-18-Harburg/^M/2017/

A pasta tem o seguinte nome:

$ ls -lisah
total 0
27 0 drwxr-xr-x 1 admin administrators 0 2018-05-18 13:32 ?/

    
por DonChuan 20.05.2018 / 19:50

1 resposta

4

O ^M em 02-18-Harburg/^M/2017/ é o caractere de retorno de carro. Seu script tem uma terminação de linha CRLF no estilo Windows, portanto, o caminho rsync vê, é /share/02-18-Harburg/<CR> . Cria obedientemente um caminho com esse nome.

(A notação ^M geralmente se refere a pressionar Ctrl + M . Uma notação mais comum para o retorno de carro como um caractere é \r .)

Corrija a linha que termina no script com algo como dos2unix ou sed -i 's/\r//' script (assumindo o GNU sed).

ls não gosta de enviar caracteres especiais em nomes de arquivos para o terminal, então imprime um ? . O que é realmente uma coisa boa aqui, já que você não pode ver o CR real no terminal. Use ls --quoting-style=shell-escape para imprimir os nomes dos arquivos em um formato menos ambíguo.

    
por 20.05.2018 / 20:54

Tags