Tiens, je t'ai pondu ça vite fait:
Code :
#!/usr/local/nin/perl use strict; use warnings; my @files = ('./dir1', './dir2', './dir3'); #liste dans l'ordre voulu $time -= (@files - 1)*60; foreach my $file (@files){ if (-e $file){ utime($time, $time, $file); $time +=60; } }
|
1) Tu met tes répertoires en liste dans l'ordre que tu veux avoir:
my @files = ('./japnames','./grabmanga'); #liste dans l'ordre voulu
ici, le script est dans le même répertoire que tes répertoires à trier, mais sinon, tu fais avant
my $path = 'le path vers le repertoire ou sont ceux à trier';
cd $path;
2) on récupère l'heure courante
my $time = time();
On va reculer d'autant de minute (sur mon PC, le tri se fait vis à vis des minutes apparemment) qu'il y a de répertoires dans la liste (en fait, moins un pour revenir a l'heure courante en dernière valeur utilisée)
$time -= (@files - 1)*60;
3) on boucle sur chaque répertoire:
On vérifie qu'il existe bien:
if (-e $file)
on met l'heure dernier accès et de modification à $time avec utime dont le proto est utime($acces_time, $modif_time, $file)
utime($time, $time, $file);
puis on avance $time de 1mn
$time +=60;
Dans mon exemple, si je lance la commande à 12h, je vais avoir:
dir1 date de modif: aujourd'hui a 11h58
dir2 date de modif: aujourd'hui a 11h59
dir3 date de modif: aujourd'hui a 12h
A+,
Message édité par gilou le 15-05-2012 à 12:00:33
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --