shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Distribuir arquivos pelo disco


From: frsamp
Subject: Distribuir arquivos pelo disco
Date: Tue, 17 Jul 2007 18:52:18 -0000
User-agent: eGroups-EW/0.82

Olá a todos os amigos da lista.

Estou tentando fazer um script que pegue cada arquivo de uma 
determinada pasta, e distribua-o por outras pastas do disco, de 
acordo com uma regra pré-estabelecida com meus usuários: No início do 
arquivo, incluir as 3 letras do código do setor e um "_". Assim, 
aquele arquivo que tem como destino aquele setor, poderia ser 
distribuído pelo próprio shell. Fiz + ou - assim (na verdade ele é 
maior, mas isso não seria relevante diante do problema que vou 
apresentar):

#!/bin/bash
for nomeoriginal in $(ls -l /shares/comunicados); do
       setor=`echo $nomeoriginal | cut -f1 -d"_"`
       nomearquivo=`echo $nomeoriginal | cut -f2 -d"_"`
       mv /shares/comunicados/$nomeoriginal /shares/setores/$setor/
$nomearquivo
done

Assim, se um setor se chama "sti", basta para o usuário colocar na 
pasta /shares/comunicados o arquivo "sti_XPTOZD" e o script move o 
arquivo para /shares/setores/sti/XPTOZD. Tudo muito bom, tudo muito 
bem... Mas se o danado do arquivo tem espaço no nome, tudo pára de 
funcionar! Para depurar o problema, fiz as seguintes alterações no 
script acima:

#!/bin/bash
for nomeoriginal in $(ls -l /shares/comunicados); do
       echo $nomeoriginal
#       setor=`echo $nomeoriginal | cut -f1 -d"_"`
#       nomearquivo=`echo $nomeoriginal | cut -f2 -d"_"`
#       mv /shares/comunicados/$nomeoriginal /shares/setores/$setor/
$nomearquivo
done

E o resultado da execução do script fica assim:
sti_Novo
Documento
de
texto.txt

Tendo como único arquivo na pasta /shares/comunicados o arquivo 
sti_Novo Documento de texto.txt. Dessa forma, ele tenta processar 
cada loop do for com sti_Novo, Documento,... Alguém pode me dar uma 
luz, ou eu apanho, dizendo para meus usuários que eles não podem 
colocar espaço nem "_" (separador de campo) no nome do arquivo. 
SOCORRO!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]