Script bash unix
rocksolide
Messages postés
11
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
J'ai besoin de votre aide afin de faire un petit script qui supprime des répertoires. En effet, le nom de chaque répertoire est une date, du type YYYYMMDD. Je souhaite supprimer tous les fichiers du mois précédents, et à la main je tape rm -rf YYYYMM*, mais je fais ça pour tous les répertoires. Y a t'il un moyen plus simple de réécrire cela dans un script, en lui donnant en paramétre la date YYYYMM*?
l'idéal, ce serait d'exécuter ./mon_script.sh 200905* depuis le répertoire courant, et sachant que tous les répertoire situés dans le répertoire courant contiennent des répertoire YYYYMMDD.
Merci de votre aide,
Cordialement,
J'ai besoin de votre aide afin de faire un petit script qui supprime des répertoires. En effet, le nom de chaque répertoire est une date, du type YYYYMMDD. Je souhaite supprimer tous les fichiers du mois précédents, et à la main je tape rm -rf YYYYMM*, mais je fais ça pour tous les répertoires. Y a t'il un moyen plus simple de réécrire cela dans un script, en lui donnant en paramétre la date YYYYMM*?
l'idéal, ce serait d'exécuter ./mon_script.sh 200905* depuis le répertoire courant, et sachant que tous les répertoire situés dans le répertoire courant contiennent des répertoire YYYYMMDD.
Merci de votre aide,
Cordialement,
A voir également:
- Script bash unix
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Bingo bash free - Télécharger - Divers Jeux
- Bash addition - Forum Shell
3 réponses
Salut,
Essaie ça et vois si ça fait l'affaire (à lancer depuis le répertoire courant comme tu l'as dit toi même) :
Essaie ça et vois si ça fait l'affaire (à lancer depuis le répertoire courant comme tu l'as dit toi même) :
find . -type d -name "200905*" -exec echo "rm -rf {}" \;Si c'est les bons répertoires qui sont affichés sur le terminal, on avisera...
Salut,
ça ne marche pas :(
voici ce que ça renvoit
$ ./arkprd02.sh
rm -rf ./ATS/20090618
rm -rf ./ATS/20090619
rm -rf ./ATS/20090620
rm -rf ./ATS/20090630
rm -rf ./EBTS/20090618
rm -rf ./EBTS/20090619
rm -rf ./EBTS/20090620
rm -rf ./EBTS/20090630
rm -rf ./ETC/20090618
rm -rf ./ETC/20090619
rm -rf ./ETC/20090620
rm -rf ./ETC/20090630
rm -rf ./ETS/20090618
rm -rf ./ETS/20090619
rm -rf ./ETS/20090620
rm -rf ./ETS/20090630
mais les répertoires existent toujours!
la commande utilisée : find . -type d -name $(date -d "today - 30 days" +%Y%m)* -exec echo "rm -rf {}" \;
Merci encore pour ton coup de main!
ça ne marche pas :(
voici ce que ça renvoit
$ ./arkprd02.sh
rm -rf ./ATS/20090618
rm -rf ./ATS/20090619
rm -rf ./ATS/20090620
rm -rf ./ATS/20090630
rm -rf ./EBTS/20090618
rm -rf ./EBTS/20090619
rm -rf ./EBTS/20090620
rm -rf ./EBTS/20090630
rm -rf ./ETC/20090618
rm -rf ./ETC/20090619
rm -rf ./ETC/20090620
rm -rf ./ETC/20090630
rm -rf ./ETS/20090618
rm -rf ./ETS/20090619
rm -rf ./ETS/20090620
rm -rf ./ETS/20090630
mais les répertoires existent toujours!
la commande utilisée : find . -type d -name $(date -d "today - 30 days" +%Y%m)* -exec echo "rm -rf {}" \;
Merci encore pour ton coup de main!
Si si ça marche très bien, mais pour ne pas faire de bétises, j'ai demandé un affichage de la commande (echo "rm...") et non pas l'exécution ;-\
Comme tu peux le voir si on enlève le "echo" il restera les commandes :
rm -rf ./ATS/20090618
rm -rf ./ATS/20090619
rm -rf ./ATS/20090620
rm -rf ./ATS/20090630
rm -rf ./EBTS/20090618
etc.
Ce qui devrait faire l'affaire, non ?
PS. Désolé les messages ont été retenus en quarantaine quelques temps ;-((
Comme tu peux le voir si on enlève le "echo" il restera les commandes :
rm -rf ./ATS/20090618
rm -rf ./ATS/20090619
rm -rf ./ATS/20090620
rm -rf ./ATS/20090630
rm -rf ./EBTS/20090618
etc.
Ce qui devrait faire l'affaire, non ?
PS. Désolé les messages ont été retenus en quarantaine quelques temps ;-((