2009-07-30 8 views

Répondre

4

Voir le manuel GNU find (et time input formats informations aussi).

En particulier, l'option -newerct '30-Jul-2009 04:37' semble faire la plupart de ce que vous voulez. Le seul hic, c'est que la page man implique que cela fonctionne pour les fichiers strictement plus récents que l'heure donnée. Cela suggère que vous devez utiliser le temps absolu:

1248957000 = 2009-07-30 05:30:00 (TZ = US/Pacific = UTC-07:00) 

-newerct @1248957000 

Cela laisse toujours le problème de savoir comment faire face à la strictement plus grande que la sémantique.

-newerct @1248956999 -a ! -newerct @1248957001 

Cela fonctionne, mais est incontestablement désordre (et suppose que vous avez des outils pour obtenir l'horodatage Unix à partir d'une valeur de date/heure).

Vous avez besoin d'une nouvelle version de find pour que cela fonctionne (GNU findutils 4.4.2 est en cours).

+0

J'ai ouvert une nouvelle question sur les horodatages ici: http://stackoverflow.com/questions/1204669/easiest-way-to-generate-unix-timestamp. Ils sont nouveaux pour moi. –

2
for file in $(ls -lR | grep "Jul 14" | awk '{print $9}') 
do 
mv $file /tmp 
done 
+0

Veuillez noter que mon objectif a été mis à jour. Je connais les fichiers, mais je suis incapable de les déplacer avec le critère: temps de création. –

+0

* temps de création spécifique, non inférieur ou supérieur à. –

0

Je ne sais pas pourquoi vous utilisez la syntaxe "exec {} +" ... Que diriez-vous ceci:

find . -ctime "0037043007" -exec mv \{} /tmp/ \;