copie de fichiers (bis) et date de création

Le
miterrandir
Bonjour

Je cherche à peaufiner le fonctionnement de la tâche cron suivante (que vous
m'avez indiquée il y a quelques jours) :

find /source
( -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp'
) -exec cp -v '{}' /destination ;

Le but était de copier les images d'un répertoire à l'autre en fonction de
leur extension.

Pour optimiser, je me demande s'il est possible d'ajouter un paramètre en
fonction de la date de création du fichier (upload) sur le serveur.

L'idéal serait de demander la copie des fichiers uploadés il y a moins de 60
minutes.

Merci pour vos conseils.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #2473921

find /source
( -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp'
) -exec cp -v '{}' /destination ;

Pour optimiser, je me demande s'il est possible d'ajouter un paramètre en
fonction de la date de création du fichier (upload) sur le serveur.


Cherche dans la doc de find, je crois bien qu'il y a des options du
genre de -atime, -mtime ou -ctime.

talon
Le #2509931
miterrandir
Bonjour

Je cherche à peaufiner le fonctionnement de la tâche cron suivante (que vous
m'avez indiquée il y a quelques jours) :

find /source
( -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp'
) -exec cp -v '{}' /destination ;

Le but était de copier les images d'un répertoire à l'autre en fonction de
leur extension.

Pour optimiser, je me demande s'il est possible d'ajouter un paramètre en
fonction de la date de création du fichier (upload) sur le serveur.

L'idéal serait de demander la copie des fichiers uploadés il y a moins de 60
minutes.

Merci pour vos conseils.




find source (... -o ...) -cmin -60 -exec cp {} ;

rose% touch toto
rose% find . -maxdepth 1 -cmin -3
.
./toto
./.xsession-errors


--

Michel TALON

Cyrille Lefevre
Le #2519141
find /source
( -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp'
) -exec cp -v '{}' /destination ;

Pour optimiser, je me demande s'il est possible d'ajouter un paramèt re en
fonction de la date de création du fichier (upload) sur le serveur.


Cherche dans la doc de find, je crois bien qu'il y a des options du
genre de -atime, -mtime ou -ctime.



Hi, Bonjour,

-mtime, etc ne marchent qu'en jours...
pour les unités inférieurs, le mieux est encore de créer un fichier de
référence et de faire une recherche en fonction de ce dernier.

touch -t $(TZ=XXX-1 date +%m%d%H%M%S) ref
# TZ=XXX-1 => date courant - 1 heure
# +%... => cf man 3 strftime
# VAR=VAL cmd => VAR exporté temporairement avec la valeur VAL
# pour la commande cmd
find /source -newer ref ( ... ) -exec ... ;
rm ref

alternative, créer un fichier de référence, puis le mettre à jour après
chaque find, comme ça, tu ne risques pas d'oublier des fichiers si la
machine est arrêté entre 2 find.

find /source -newer ref ( ... ) -exec ... ;
touch ref

Regards, Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.


Cyrille Lefevre
Le #2519131
find source (... -o ...) -cmin -60 -exec cp {} ;

rose% touch toto
rose% find . -maxdepth 1 -cmin -3
.
./toto
./.xsession-errors


Hi, Bonjour,

si je ne me trompe, il s'agit d'un forum unix "généraliste"
et non d'un forum GNU "spécifique", n'est ce pas ?

http://www.opengroup.org/onlinepubs/009695399/utilities/find.html

pas de -cmin, etc. à l'horizon...

Regards, Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.

Thierry B.
Le #2539181
--{ Cyrille Lefevre a plopé ceci: }--

si je ne me trompe, il s'agit d'un forum unix "généraliste"
et non d'un forum GNU "spécifique", n'est ce pas ?


D'un autre coté, une immense majorité des outils GNU s'installent
aisément dans une grande majorité des Unix généralistes, non ?

Et le find de mon OpenBSD connait bien l'option -cmin...

--
"Low cost, stand-alone, easy to use". The trigone of computing.

talon
Le #2539171
Cyrille Lefevre
find source (... -o ...) -cmin -60 -exec cp {} ;

rose% touch toto
rose% find . -maxdepth 1 -cmin -3
.
./toto
./.xsession-errors


Hi, Bonjour,

si je ne me trompe, il s'agit d'un forum unix "généraliste"
et non d'un forum GNU "spécifique", n'est ce pas ?

http://www.opengroup.org/onlinepubs/009695399/utilities/find.html

pas de -cmin, etc. à l'horizon...


Tu sais, j'ai écrit ça pour rendre service, dans la mesure du possible.
Au vu du page man de find, ctime n correspond à n *jours* et cmin n à
n minutes, la question initialement posée. En ce qui concerne l'Open
Group, tu ne peux pas savoir à quel point je m'en tamponne le coquillard.
Le find GNU se trouve sur Linux, FreeBSD, ça doit bien couvrir 100 fois
le nombre des fossiles qui tournent sur des systèmes Unix propriétaires.
Et qui plus est je n'ai pas le moindre goût pour une carrière de
grammairien, de juriste, ou de pinailleur.



--

Michel TALON


Matthieu Moy
Le #2539161
Cyrille Lefevre writes:

find /source -newer ref ( ... ) -exec ... ;
touch ref


Faut juste faire gaffe au cas où un fichier serait ajouté à la source
pendant le find : dans ce cas là, il risque de ne pas être pris par le
find du jour, et ne sera pas pris par le find du lendemain.

Je pense que

touch ref.tmp
find /source -newer ref ...
mv -f ref.tmp ref

devrait passer.

--
Matthieu

miterrandir
Le #3860301
Michel Talon le lundi 7 avril 2008 22:10

miterrandir
Bonjour

Je cherche à peaufiner le fonctionnement de la tâche cron suivante (que
vous m'avez indiquée il y a quelques jours) :

find /source
( -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp'
) -exec cp -v '{}' /destination ;

Le but était de copier les images d'un répertoire à l'autre en fonction
de leur extension.

Pour optimiser, je me demande s'il est possible d'ajouter un paramètre en
fonction de la date de création du fichier (upload) sur le serveur.

L'idéal serait de demander la copie des fichiers uploadés il y a moins de
60 minutes.

Merci pour vos conseils.




find source (... -o ...) -cmin -60 -exec cp {} ;

rose% touch toto
rose% find . -maxdepth 1 -cmin -3
.
./toto
./.xsession-errors




Impeccable merci beaucoup.


Publicité
Poster une réponse
Anonyme