J'ai trouvé un SO appelé à l'aide de Find/Grep pour rechercher des fichiers entre des heures précises de la journée
Basé sur cela et un Unix SE appelé commande Grep pour trouver des fichiers contenant une chaîne de texte et les déplacer
find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/
Mais ça déplace TOUS les fichiers. Est-ce que cela fait une différence que j'utilise Ubuntu?
Tout ce que je veux faire est de déplacer tous les fichiers entre 6h et 18h vers un autre répertoire. Toute suggestion serait appréciée.
En fait, find
a déjà cette fonctionnalité:
find . -newermt "2013-01-01 00:00:00" ! -newermt "2013-01-02 00:00:00"
De la page de manuel:
-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 argu‐
ment 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 deter‐
mined, 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.