Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/10/2007, 16h41   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 1
Points : 0
Points : 0
Par défaut Problème de suppression Fichiers en Unix

Bonjour à tous,

Un de mes scripts génèrent quotidiennement X fichiers de log dans un répertoire.
Je souhaiterai créer un script dans lequel je passerai en argument une date.

L'objectif serait qu'il me supprime tous les fichiers créés antérieurement à cette date ?
Qqn pourrait-il m'aider ?

Merci
tperisser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 14h37   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 677
Points : 9 677
Bonjour,

Tout d'abord, je te conseil de regarder les possibilités qu'offre un logiciel comme logrotate.

Sinon, find est la fonction qu'il te faut pour rechercher des fichiers (permet de passer une date en argument de recherche), et tu peux coupler find à un rm (attention toutefois à ceci, car toute suppression est définitive).
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 08h43   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
Code :
find / -name "[tT][OoiI][tT][OoiI]" -mtime +$nombre_jour -exec rm -rf {} \;
par exemple en nombre de jour je n'ai plus en tête l'option pour la date....
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2007, 14h09   #4
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 677
Points : 9 677
Citation:
Envoyé par frp31 Voir le message
Code :
find / -name "[tT][OoiI][tT][OoiI]" -mtime +$nombre_jour -exec rm -rf {} \;
par exemple en nombre de jour je n'ai plus en tête l'option pour la date....
Je pense qu'une petite explication s'impose :

find recherche les fichier correspondant aux critères que tu précises.

Ici, find commence à chercher sur / (donc à la racine de tous les répertoires, ce qui n'est pas du tout optimisé)
  • "-name" permet de préciser que tu souhiates trier sur le nom du fichier
  • "[tT][OoiI][tT][OoiI]" : utilisation des expressions régulières pour trouver tous les ficheirs dont la première lettre est 't', la seconde 'o' ou 'i', 't', puis encore 'o' ou 'i', le tout soit en majuscule soit en minuscule (TOTO, tiTO, ToTi, tItI, ...)
  • -mtime +$nombre_jour: permet de préciser le nombre de jours depuis la dernière modification du fichier. Ici, le nombre de jours est stocké dans la variable nombre_jour, définie avant d'appeler la commande find. On trouve également atime (fichier accédé), ctime (fichier dont le statut a été changé)
  • -exec : permet de préciser que l'on souhaite exécuter une commande sur le résultat trouvé par find. Ici, la commande à exécuter est "rm -rf", ce qui suppose que tu es parfaitement certain de ce que tu as tapé dans le find (les fichiers sont irrémédiablement supprimés).

http://man.developpez.com/man1/find.1.php
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h17.


 
 
 
 
Partenaires

Hébergement Web