raphamolnar
(usa Ubuntu)
Enviado em 25/10/2011 - 14:06h
Galerinha, a situação é a seguinte, estou criando um script para apagar backups antigos, que ficam armazenzados em um servidor windows
mais deparei com dois problemas principais, um é os espaços nos nomes, o outro é quando tem um diretório dentro do outro.
vou postar o que consegui até agora e também a saída:
#!/bin/bash
#solução encontrada para acabar com os problemas de espaço
IFS=$(echo -e "\t\n")
#diretório onde está montada a partição windows
cd /mnt/teste
#usei para capturar os nomes dos diretórios
directory=`find -maxdepth 100 -type d`
#echo $directory
echo
for x in $directory; do
#este é o primeiro problema, esta parte não está me dando a saída que eu queria
cutnome=`echo "$x"|cut -c 3-100`
echo $cutnome
#uso para capturar o nome correto da pasta
cd /mnt/teste/$cutnome
num=`ls -l|wc -l`
# echo $num
#preciso deixar apenas 5 arquivos em cada diretório de backup
while [ $num -ge 7 ];
do
var=`ls -lt|tail -n1`
cutarquivo=`echo "$var"|cut -c 50-300`
# rm -vf $cutarquio
#antes de remover o arquivo testei o comando com ls
echo $cutarquivo
num=`ls -l|wc -l`
done
Postarei agora a saída do script
root@ubuntu-teste:/home/raphael/scripts/definitivo# ./apaga.definitivo
231-ROSBERG
231-ROSBERG/INOTA
239-LEBISTE
239-LEBISTE/TASK
teste1
./apaga.definitivo: linha 17: cd: /mnt/teste/
231-ROSBERG
231-ROSBERG/INOTA
239-LEBISTE
239-LEBISTE/TASK
teste1: Arquivo ou diretório não encontrado
por favor, se alguém conseguir jogar uma luz agradeço muito =D
done