Olá Sérgio,
Na verdade eu já tinha tentado isso, mas no caso o problema está na
hora que a linha do txt e jogada para a a variável e dele encarar o
espaço em branco entre as palavras (mesmo que o inicio e o fim tenham
aspas) como um caractere de fim de linha.
Eu também entrei no txt e coloquei manualmente as aspas nos nomes
compostos, mesmo assim não funcionou.
Se souber outra dica por favor me mande.
Abraço
Pedro
Sérgio Pinheiro escreveu:
Olá Pedro, blz ?
Coloca a variável entre aspas que
funciona.
find "$limpar" -type f -mtime 15 -exec rm -rf {} \;
Se quiser fazer um teste, faz assim:
mkdir "isso é um teste"
e depois entre no diretório pela
tecla TAB.
cd iss TAB
E você verá que funciona.
Abraços,
Sérgio.
-----
Original Message -----
Sent:
Monday, June 25, 2007 11:46 AM
Subject:
Rotina de limpeza da pasta .recycle do samba
Olá pessoal,
Trabalho com o samba 3.x na rede e configurei o sistema para que crie
uma lixeira para cada compartilhamento existente no sistema.
Consultando a net consegui uma rotina para limpar os arquivos que
estejam em um determinado tempo na lixeira.
find /compartilhamento/.recycle/ -type f -mtime 15 -exec rm -rf
{} \;
O unico problema é que tenho que criar uma linha para cada
compartilhamento existente. Então resolvi fazer uma rotina que liste
todas as pastas .recycle do sistema e jogar para um txt e em
cima dele rodar uma rotina com um for que leia o arquivo txt
carregando o caminho das pastas .recycle do txt para uma
variável e substituindo na rotina de limpeza das pastas:
find / -type d |grep .recycle > /tmp/lixo.txt # localiza
todas pastas recycle e grava seu caminho no arquivo txt
for limpar in `cat /tmp/lixo.txt` # carrega cada linha para a
variavel limpar
do
find $limpar -type f -mtime 15 -exec rm -rf {} \; # executa o
comando sobre o caminho contido na variável limpar
done
A rotina funciona bem, porém tenho um problema. Alguns nomes de
pastas compartilhadas possuem espaço e qdo estas são carregadas do
arquivo txt para variável limpar cada palavra separada é interpretada
como uma pasta diferente. Ex:
/nome da pasta./recycle
é interpretada como:
find /nome -type f -mtime 15 -exec rm -rf {} \;
find /da -type f -mtime 15 -exec rm -rf {} \;
find /pasta/.recycle -type f -mtime 15 -exec rm -rf {} \;
Uma solução seria substituir o nome das pastas, mas muitas
delas armazenam planilhas que possuem vínculos para estas pastas, logo,
isso teria que ser refeito manualmente. Portanto, gostaria de saber se
alguém pode me dar uma dica de como fazer com que a rotina interprete
os nomes compostos das pastas de forma correta. Eu pensei em incluir
aspas nos arquivo txt no inicio e no final da linha, mas não sei como
fazer isso de forma automática.
Se alguém puder ajudar eu agradeço desde já.
Muito obrigado
Pedro