Find caminho completo errado para copia

1. Find caminho completo errado para copia

welles
wellesfreire

(usa CentOS)

Enviado em 10/07/2016 - 20:19h

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á


  


2. Re: Find caminho completo errado para copia

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 10/07/2016 - 20:36h

Lacre-o com "aspas duplas" ou escape o caractere espaço assim: nome\ do\ arquivo
ou no seu caso "{}"


3. Re: Find caminho completo errado para copia

welles
wellesfreire

(usa CentOS)

Enviado em 11/07/2016 - 22:07h

Amigo agradeci mas fui testar numa pasta maior mas continua gerando o caminho errado mesmo com as aspas


4. Re: Find caminho completo errado para copia

Marcelo Oliver
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



5. Re: Find caminho completo errado para copia

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 12/07/2016 - 16:05h

msoliver escreveu:

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


+1
Considero esse um dos melhores meios pra se trabalhar com scripts shell, jogar a saída pra arquivos.txt e depois usar o while fica bem melhor.



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


6. Re: Find caminho completo errado para copia

welles
wellesfreire

(usa CentOS)

Enviado em 13/07/2016 - 09:36h

Muito obrigado estou tentando e lhe digo mas valeu pela dica






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts