Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
suppression fichiers sauf ...
Envoyé par: footix06

bonjour,
je voudrais faire un bach de purge.
il doit supprimer tous les fichiers .bak sauf les 5 derniers.
avec les head et ail cela ne foncionne pas.

comment faire avec une boucle (ou si il y a plus simple) pour tester si $i fait parti des 5 derniers fichiers?

example de script:
DERNIERSFIC=`ls -tr $CHEM/*.bak|tail -6`

for i in `ls -tr $CHEM/*.bak`
do
if [ $i = $DERNIERSFIC ] ; then
echo ------------ $i est un des derniers fichiers
else
echo ------------ $i peut etre supprime
fi
done

Poste le Thursday 9 September 2010 09:21:40
Répondre     Citer    
Re: suppression fichiers sauf ...
Envoyé par: lilian_h

Bonjour,

Tu n'as pas a tester si le fichier à supprimer fait parti des 6 derniers.

Moi je ferais ca pour obtenir la liste des fichiers à supprimer

if [[ $(ls -1 |wc -l) -gt 5 ]] ; then
ls -l | head -n$(( $(ls -1 |wc -l) - 5 ))
fi


et pour aller plus loins:
if [[ $(ls -1 |wc -l) -gt 5 ]] ; then
for i in $(ls -l | head -n$(( $(ls -1 |wc -l) - 5 ))) ; do
echo "Suppression : $i"
rm -f $i
done
fi

Poste le Thursday 9 September 2010 14:57:37
Répondre     Citer    
Re: suppression fichiers sauf ...
Envoyé par: footix06

quel âne je fais, comment n'y ai je pas penser.
merci

Poste le Tuesday 14 September 2010 09:12:55
Répondre     Citer    
Re: suppression fichiers sauf ...
Envoyé par: lilian_h

De rien,
Content d'avoir pu aider

Lilian.

Poste le Tuesday 14 September 2010 14:03:06
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
suppression fichiers sauf ...
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons