Je souhaite supprimer les fichiers de plus de 59 minutes. J'ai ceci jusqu'à présent:
find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*" -exec rm -f {} \;
Cela ne fonctionne pas et semble supprimer tous les fichiers. J'ai testé cela plusieurs fois et je pense que le problème est lié à daystart
.
J'ai lu la page de manuel et elle semble se baser sur le début de la journée plutôt que sur 24 heures auparavant. Si tel est le cas, comment puis-je supprimer avec précision des fichiers de plus de 59 minutes? Dois-je tenir compte de daystart
et ajouter quelques minutes de plus?
Exemple:
ubuntu@ip-10-138-30-118:/tmp$ ls -la
total 8
drwxrwxrwt 2 root root 4096 Jul 20 14:39 ./
drwxr-xr-x 23 root root 4096 Jun 25 18:34 ../
-rw-rw-r-- 1 ubuntu ubuntu 0 Jul 20 12:35 a.txt
Les deux commandes suivantes retournent le fichier:
ubuntu@ip-10-138-30-118:/tmp$ find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*"
/tmp/a.txt
Et:
ubuntu@ip-10-138-30-118:/tmp$ find /tmp -daystart -maxdepth 1 -mmin +359 -type f -name "*.*"
/tmp/a.txt
Cependant, le fichier n'a pas plus de 659 minutes (10,9 heures)! Mais à 759 (12,65 heures), il ne retourne plus le fichier?
Lorsqu'il est utilisé avec -mmin
, -daystart
semble le faire calculer à partir du fin d'aujourd'hui, pas du début.
Si vous souhaitez simplement rechercher des fichiers modifiés il y a plus de 59 minutes, vous n'avez pas besoin de cette option. -mmin
calcule à partir de l'heure actuelle par défaut.
barmar@dev:~/testdir$ date
Sat Jul 20 10:02:20 CDT 2013
barmar@dev:~/testdir$ ls -l
total 0
-rw-r--r-- 1 barmar adm 0 Jul 20 09:57 a.txt
barmar@dev:~/testdir$ find . -maxdepth 1 -mmin +2 -type f
./a.txt
barmar@dev:~/testdir$ find . -maxdepth 1 -mmin +10 -type f
cela devrait fonctionner pour vous
find /path -mmin +59 -type f -exec rm -fv {} \;