Si on find
n'a pas -mmin
et si on est aussi coincé avec un find
qui n'accepte que des valeurs entières pour -mtime
, alors tout n'est pas nécessairement perdu si l'on considère que "plus ancien que" est similaire à "pas plus récent que".
Si nous avons pu créer un fichier qui a un mtime de notre heure limite, nous pouvons demander find
à localiser les fichiers qui ne sont "pas plus récents que" notre fichier de référence.
Créer un fichier avec l'horodatage correct est un peu compliqué car un système qui ne dispose pas d'un find
a probablement aussi moins que capable de date
commande qui pourrait faire des choses comme: date +%Y%m%d%H%M%S -d "6 hours ago"
.
Heureusement, d'autres anciens outils peuvent gérer cela, bien que de manière plus lourde.
Considérez que six heures correspondent à 21600 secondes. Nous voulons trouver l'heure d'il y a six heures dans un format utile:
$ date && perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'
> Thu Apr 16 04:50:57 CDT 2020
202004152250.57
L'instruction perl a produit une date utile, mais elle doit être mieux utilisée:
$ date && touch -t `perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", \
$d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'` ref_file && ls -l ref_file
Thu Apr 16 04:53:54 CDT 2020
-rw-rw-rw- 1 root sys 0 Apr 15 22:53 ref_file
Maintenant, la solution pour cet ancien UNIX est quelque chose du genre:
$ find . -type f ! -newer ref_file -a ! -name ref_file -exec rm -f "{}" \;
Cela peut aussi être une bonne idée de nettoyer notre fichier de référence ...
$ rm -f ref_file