Ubuntu Linux: find files between specific times?
40,565
Actually, find
already has this functionality:
find . -newermt "2013-01-01 00:00:00" ! -newermt "2013-01-02 00:00:00"
From the manpage:
-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.
Related videos on Youtube
Author by
digitaltoast
Updated on September 18, 2022Comments
-
digitaltoast over 1 year
I found an SO called using Find/Grep to search files between specific time of day
Based on that and a Unix SE called Grep command to find files containing text string and move them I ended up with:
find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/
But it's moving ALL the files. Does it make a difference that I'm using Ubuntu?
All I want to do is move all files between 6am and 6pm to another directory. Any suggestions would be appreciated.
-
digitaltoast about 11 yearsThanks @msdl, I didn't realise that. It seems to only act on todays date when give "08:00:00" without the date, so it seems it needs one day at a time. But that'll do me - thanks!
-
Kulasangar over 9 yearsSo how can i get those files printed in the terminal? i tried this command but it didn't print anything for me!