Bonjour;
j'aimerais avec la commande find obtenir le nom des fichiers créés après minuit du jour J-1 et de dernière modification avant minuit du jour J, en utilisant le timestamp si possible.
Merci pour votre savoir
Discussion :
Bonjour;
j'aimerais avec la commande find obtenir le nom des fichiers créés après minuit du jour J-1 et de dernière modification avant minuit du jour J, en utilisant le timestamp si possible.
Merci pour votre savoir
j'ai envie de te dire RTFM là...
tu utilises touch pour créer deux fichiers horodatage choisi donc par toi de limites et tu utilises find avec les références des fichiers et tu effaces ces derniers
quelques soit les heures/dates choisies ça marchera même si tu veux les fichiers du 03 mai 1903 entre 14h17 et le 04 mai 1942 à 09h49.
![]()
Bonjour,
En complément de la réponse de frp31, les 2 fichiers d'horodatage ne doivent pas être créer dans l'arborescence que le find doit explorer car ceux-ci peuvent être détecté et pris en compte par les actions du find.
Cordialement.
Si j'ai bien comprison doit pouvoir repondre au besoin avec juste les options - mtime et -ctime
Code : Sélectionner tout - Visualiser dans une fenêtre à part man find
La même question a été posée naguère: solution avec touch + find
j'ai implicitement et surement un peu trop rapidement
assimilé J au jour courant ...
Pour J jour quelconque ce n'est en effet pas aussi simple mais je fais entierement confiance aux solutions proposées ici et dans les autres post![]()
Yep !
Mercis pour vos réponses !
Et bien J était le jour courant en effet.
Sinon un find -ctime -1 m'a très bien réussi. 'J'avais omis de mentionner que j'eatis sous RHEL 6.1 ... :/
Voici sinon pour le fun une version (vraiment) alambiquée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $ ls -la total 20831 drwx------ 3 x x 1024 Mar 1 17:16 . drwxr-xr-x. 7 root root 1024 Jul 6 2012 .. -rw------- 1 x x 13131 Mar 20 16:17 .bash_history -rw-r--r-- 1 x x 18 Apr 23 2012 .bash_logout -rw-r--r-- 1 x x 176 Apr 23 2012 .bash_profile -rw-r--r-- 1 x x 124 Apr 23 2012 .bashrc -rwx------ 1 x x 21301090 Jul 12 2012 jre-6u33-linux-x64.bin -rw-r--r-- 1 x x 121 Apr 11 2012 .kshrc drwx------ 2 x x 1024 Aug 27 2012 .ssh -rw------- 1 x x 5441 Jan 30 14:04 .viminfo -rw------- 1 x x 74 Mar 1 17:16 .XauthorityCordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ TIME1=`date -u --date="2013-03-20 00:00:00" +%s` $ TIME2=`date -u --date="2013-03-21 00:00:00" +%s` $ ( echo $TIME1 && echo $TIME2 && find . -type f -printf '%C@ /%p\n' ) | sort | sed -e '/'$TIME1'/,/'$TIME2'/!d;/^[0-9]\+$/d;s/^[0-9.]\+ \///g' | xargs ls -l -rw------- 1 x x 13131 Mar 20 16:17 ./.bash_history
Si tu es joueur, tu peux aussi ne pas passer par les variablesavec des commandes interprétés directement
![]()
Par contre j'ai un petit soucis avec cette commande :
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 vm-rh61 scripts $ export DATE_J=`date +"%Y-%m-%d"`; vm-rh61 scripts $ export DATE_JMOINS1=`date --date '1 days ago' +"%Y-%m-%d"`; vm-rh61 scripts $ export TIMESTAMP1=`date -u --date="${DATE_J}" +%s`; vm-rh61 scripts $ export TIMESTAMP2=`date -u --date="${DATE_JMOINS1}" +%s`; vm-rh61 scripts $ vm-rh61 scripts $ vm-rh61 scripts $ echo $DATE_J 2013-03-21 vm-rh61 scripts $ echo $DATE_JMOINS1 2013-03-20 vm-rh61 scripts $ echo $TIMESTAMP1 1363824000 vm-rh61 scripts $ echo $TIMESTAMP2 1363737600 vm-rh61 scripts $ $( echo $TIMESTAMP1 && echo $TIMESTAMP2 && find . -type f -printf '%C@ /%p\n' ) -bash: 1363824000: command not found
OK ... euh désolé c'est pour moi, j'avais pas vu le $ en trop...
Le noir et blanc ça fatigue...
Euh, c'était juste pour le fun ou à la rigueur pour ceux qui ont un find sans l'option newerXY:
ce qui donne par exemple:-newerXY reference
Compares the timestamp of the current file with reference. The reference argument is normally the name of a file (and one of its timestamps
is used for the comparison) but it may also be a string describing an absolute time. X and Y are placeholders for other letters, and these
letters select which time belonging to how reference is used for the comparison.
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
t reference is interpreted directly as a time
Some combinations are invalid; for example, it is invalid for X to be t. Some combinations are not implemented on all systems; for example
B is not supported on all systems. If an invalid or unsupported combination of XY is specified, a fatal error results. Time specifications
are interpreted as for the argument to the -d option of GNU date. If you try to use the birth time of a reference file, and the birth time
cannot be determined, a fatal error message results. If you specify a test which refers to the birth time of files being examined, this
test will fail for any files where the birth time is unknown.
ici, je me base sur la date de modification...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $ ls -al total 20834 drwx------ 3 x x 1024 Mar 1 17:16 . drwxr-xr-x. 7 root root 1024 Jul 6 2012 .. -rw------- 1 x x 15536 Mar 20 19:59 .bash_history -rw-r--r-- 1 x x 18 Apr 23 2012 .bash_logout -rw-r--r-- 1 x x 176 Apr 23 2012 .bash_profile -rw-r--r-- 1 x x 124 Apr 23 2012 .bashrc -rwx------ 1 x x 21301090 Jul 12 2012 jre-6u33-linux-x64.bin -rw-r--r-- 1 x x 121 Apr 11 2012 .kshrc drwx------ 2 x x 1024 Aug 27 2012 .ssh -rw------- 1 x x 5441 Jan 30 14:04 .viminfo -rw------- 1 x x 74 Mar 1 17:16 .Xauthority $ $ find . -newermt "2013-01-30 00:00:00" -a \! -newermt "2013-03-01 00:00:00" -exec ls -l {} \; -rw------- 1 x x 5441 Jan 30 14:04 ./.viminfo
Cordialement.
Partager