Tratar Whitespace de forma correta
fiz um script para fazer backup de alguns tipos de arquivo (.doc .xls)
para algumas pessoas do meu trampo
Citação:
for i in \´`cat $TEMP2 `\´; do
cp --parent -vrf $i /bkp_ide/home
sleep 0,1
done
essa é somente uma parte que interessa, esse TEMP2 foi gerado através do `find` e depois selecionei oq queria com o cat + grep
Mas os arquivos que contém espaço não são copiados, o ´for´ interpreta o espaço como nova linha
logo um arquivo agenda telefonica.doc
tenta ser copiado como
cp agenda
cp telefonica.doc
Entenderam? ele separa o nome do arquivo
mas tem um fato curioso, os arquivos com espaço de 2 usuários quaisquer copia de forma normal enquanto os arquivos dos outros não
:toim:
Tratar Whitespace de forma correta
Dessa maneira vc pode verificar se funciona, pois ele apenas mostrará a saída do comando:
awk '{print "cp --parent -vrf \""$0"\" /bkp_ide/home/ "}' $TEMP2
Se ser certo, pode repetir com |sh -x no final para ele executar:
awk '{print "cp --parent -vrf \""$0"\" /bkp_ide/home/ "}' $TEMP2 |sh -x
Tratar Whitespace de forma correta
esqueci de postar um detalhe, com o find funciona, mas se eu usar o locate para gerar o arquivo ele não funfa..............
Citação:
Dessa maneira vc pode verificar se funciona, pois ele apenas mostrará a saída do comando:
awk '{print "cp --parent -vrf \""$0"\" /bkp_ide/home/ "}' $TEMP2
Se ser certo, pode repetir com |sh -x no final para ele executar:
awk '{print "cp --parent -vrf \""$0"\" /bkp_ide/home/ "}' $TEMP2 |sh -x
Funcionou em partes.............criou um loop infinito
Tratar Whitespace de forma correta
fiz um teste aqui...
Coloquei um arquivo em que cada linha é um número
Ex:
1
2
3
Neste caso ele faz 3 loops
se eu fizer outro arquivo que vai até 5, ele "loopa" 5 vezes
Tratar Whitespace de forma correta
sou um cabeçudo mesmo, esqueci de tirar o for, por isso dava loop