msoliver
(usa Debian)
Enviado em 12/07/2016 - 12:32h
wellesfreire escreveu:
Amigos estou com um problema de espaço no nome dos arquivos, quando executo o comando abaixo todos os arquivos que possuem espaço no nome é copiado com 5 bytes . como faço o find gerar um caminho real para copia?
caminho gerado pelo find : /mnt/1TBWEST/1tbatemp/star wars.m4v
caminho pretendido : /mnt/1TBWEST/1tbatemp/star\ wars.m4v
find /mnt/1TBWEST/1tbatemp/ -iname '*.m4v' -exec rsync -a --progress {} /mnt/1TBWEST/sempastas/ \;
Muito obrigado desde já
Boa tarde wellesfreire.
Para "contornar" o problema, faça o seguinte:
Gere um ARQUIVO.txt com a saída do find, EX:
find /mnt/1TBWEST/1tbatemp/ -iname '*.m4v' >> ARQUIVOS_ENCONTRADOS.txt
Depois . . .
while IFS=$'\n' read -r FILE;do
rsync -a --progress "${FILE// /\\ }" /mnt/1TBWEST/sempastas/
done<ARQUIVOS_ENCONTRADOS.txt
Teoricamente funciona, visto que o
"${FILE// /\\ }"
Altera
ESPAÇO para
\ESPAÇO
Ou. . .
Gere o ARQUIVO.txt, com os ESPAÇOS ESCAPADOS
find /mnt/1TBWEST/1tbatemp/ -iname '*.m4v'|sed 's/ /\\ /g' >> ARQUIVOS_ENCONTRADOS.txt
while IFS=$'\n' read -r FILE;do
rsync -a --progress "$FILE" /mnt/1TBWEST/sempastas/
done<ARQUIVOS_ENCONTRADOS.txt
É Isso.
att.:
marcelo oliver