#1 Le 03/03/2013, à 14:30
- adgenodux
[PROBLEME] Trouver et effacer des fichiers par date
Bonjour,
Comme dit en titre, je cherche le moyen de lister et effacer des fichiers selon une date précise.
J'ai regardé du côté de locate, find ou encore ls mais je ne parviens pas à composer une ligne d'instruction, j'ai des erreurs de syntaxe...
Pourriez-vous m'aider ?
Merci
Adgenodux
Hors ligne
#2 Le 03/03/2013, à 15:48
- pingouinux
Re : [PROBLEME] Trouver et effacer des fichiers par date
Bonjour,
Qu'as-tu essayé comme commandes ?
Sinon, pour avoir la liste des fichiers modifiés le 24 janvier 2013, par exemple :
while read fichier; do echo "$fichier"; done < <(find -printf "%p %TY-%Tm-%Td\n" | sed -n 's/ 2013-01-24$//p')
et pour les supprimer si c'est bon
while read fichier; do rm "$fichier"; done < <(find -printf "%p %TY-%Tm-%Td\n" | sed -n 's/ 2013-01-24$//p')
Hors ligne
#3 Le 03/03/2013, à 15:59
- adgenodux
Re : [PROBLEME] Trouver et effacer des fichiers par date
Bonjour pingouinux et merci pour l'info
c'est juste ce qu'il me faut....
Hors ligne
#4 Le 03/03/2013, à 19:44
- nesthib
Re : [PROBLEME] Trouver et effacer des fichiers par date
@pingouinux : j'avoue que ta solution me laisse perplexe… pourquoi la boucle ? pourquoi sed -n/p au lieu de grep ?
Après j'avoue que find est un peu cryptique pour chercher par date de modification, c'est simple quand on spécifie en terme de jours par rapport au jour actuel :
Les fichiers modifiés entre 25 et 30 jours plus tôt :
find . -mtime -30 -mtime +25 …
Pour faire par date avec une précision à la seconde, il y a une astuce à connaître :
touch -t 201301011242.00 /tmp/ancien
touch -t 201301051142.00 /tmp/récent
find . -newer /tmp/ancien ! -newer /tmp/récent
et une fois qu'on est sûr, pour les supprimer
find . -newer /tmp/ancien ! -newer /tmp/récent -delete
ou, pour plus de sécurité :
find . -newer /tmp/ancien ! -newer /tmp/récent -exec rm -i {} \;
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 03/03/2013, à 20:30
- pingouinux
Re : [PROBLEME] Trouver et effacer des fichiers par date
@pingouinux : j'avoue que ta solution me laisse perplexe… pourquoi la boucle ? pourquoi sed -n/p au lieu de grep ?
C'est vrai que pour avoir la liste, la boucle n'est pas nécessaire.
find -printf "%p %TY-%Tm-%Td\n" | sed -n 's/ 2013-01-24$//p'
Je ne m'en suis pas sorti avec le grep pour ne récupérer que le nom du fichier, s'il contient des espaces.
Ajouté :
Voilà
find -printf "%p %TY-%Tm-%Td\n" | grep -Po '^.* (?=2013-01-24$)'
Dernière modification par pingouinux (Le 03/03/2013, à 21:36)
Hors ligne
#6 Le 03/03/2013, à 21:27
- adgenodux
Re : [PROBLEME] Trouver et effacer des fichiers par date
c'est mon prob aussi d'arriver à composer une commande tellement on peut (ou doit !) y mettre d'éléments...
c'est puissant mais il faut déjà bien maîtriser la ligne de commande pour arriver à composer des instructions de ce type...
merci en tous cas pour les précisions...
Hors ligne