[gull] truc et astuce: Connaitre la date du dernier fichier d'un répertoire
Félix Hauri
felix at f-hauri.ch
Fri Sep 10 14:25:02 CEST 2004
En paufinant un poil la présentation:
find pour parcourir tous les sous-répertoires
sort pour trier
head pour tirer le premier (dernier en date)
xargs pour printf,
printf pour formater l'argument de la commande date via xargs
date pour formater la date.
$ DIR=/home/user
$ find $DIR -type f -printf "%Ts\n" | \
sort -rn | \
head -n1 | \
xargs -n1 printf "1970-1-1 UTC +%s secs\n" | \
env LANG=fr_CH date -f - +"%c"
J'aurais aussi bien pu:
$ DIR=/home/user
$ env LANG=fr_CH date -d 1970-1-1\ UTC\ +$(
find $DIR -type f -printf "%Ts\n" | \
sort -rn | \
head -n1
)\ secs +"%c"
Mai j'avais envie de le faire sans ``$(...)'' (ni backticks), càd sans fork,
ressortir cette vieille commande xargs...
Si le résultat est le même, le comportement diffère en cela que la première
méthode ne génère pas de wait-fork, que des pipes.
(Petites différences qui peuvent prendre de l'importances dans certaines
circonstances comme p.ex: traitement par lot de longue listes sur des
systèmes multi-processeurs)
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list