[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!
- Distribuir arquivos pelo disco,
frsamp <=