Usually the date +%d
gives the output 08
for the current date, 08/10/2017. But when I do the ls -lrt
on a path, the date format is like Oct 8 15:03
, so, how do I get the files of the current date?
I'm using the command
ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'
but it's not giving me the file of today's date (08/10/2017) although it gives me correct output for the dates 10 – 31st of any month.
Best Answer
This is cheating a bit, but it works.
First create an empty reference file with a specific timestamp, namely midnight:
Then find files that are newer than this file:
If you want
ls
-like output fromfind
rather than just the pathnames:If you want to find files matching the pattern
XYZ.LOG*
:If you have GNU
find
, you may bypass the temporary file and useto get files modified since midnight.
Related: Why *not* parse `ls`?