#1 Le 22/02/2009, à 14:41
- Daddo
[résolu] [BASH] Supprimer les fichiers modifiés aujourd'hui
Bonjour,
Je souhaiterais créer un script bash pour supprimer les fichiers modifiés le jour même.
Pour l'instant pour essayer je me contente de lister les fichiers modifiés le jour même.
J'ai fait ceci :
for i in *
do
if [ 'date -r $i +%F' = 'date +%F' ]
then
echo $i
fi
done
Mais ça ne liste jamais rien. Pourtant il y a bien deux fichiers modifiés aujourd'hui :
daddo@pc:~/Bureau$ ll | grep '2009-02-22'
-rw-r--r-- 1 daddo daddo 0 2009-02-22 14:30 fichier_aujourdhui
-rw-r--r-- 1 daddo daddo 0 2009-02-22 14:30 fichier_aujourd'hui_2
daddo@pc:~/Bureau$ date -r fichier_aujourdhui +%F
2009-02-22
daddo@pc:~/Bureau$ date +%F
2009-02-22
Qu'est-ce qui peut bien clocher ?
Ce vient peut-être des deux commandes "dates" qu'il ne faut pas mettre entre quotes mais ça ne marche ni avec des simples/doubles quotes ni sans rien
Merci
Dernière modification par Daddo (Le 08/03/2009, à 12:06)
Hors ligne
#2 Le 22/02/2009, à 14:47
- AnsuzPeorth
Re : [résolu] [BASH] Supprimer les fichiers modifiés aujourd'hui
Tu as regardé du coté de find, il a les options pour trier par date de modif, et un exec rm fera le travail !
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 22/02/2009, à 15:04
- frafa
Re : [résolu] [BASH] Supprimer les fichiers modifiés aujourd'hui
Salut,
ben faudrait peut etre les executer!
`` ou $()
sinon comme AnsuzPeorth find et exec plus adapté je pense...
EDIT: Correction
for i in *
do
if [ "$(date -r "$i" +%F)" = "$(date +%F)" ]
then
echo "$i"
fi
done
Dernière modification par frafa (Le 22/02/2009, à 15:07)
Hors ligne
#4 Le 22/02/2009, à 18:26
- Link31
Re : [résolu] [BASH] Supprimer les fichiers modifiés aujourd'hui
find . -maxdepth 1 -mtime 1 -delete
Hors ligne
#5 Le 08/03/2009, à 12:06
- Daddo
Re : [résolu] [BASH] Supprimer les fichiers modifiés aujourd'hui
Merci
Hors ligne