Linux / UNIX: Displaying Today’s Files Only

by on April 28, 2010 · 12 comments· LAST UPDATED April 28, 2010

in

How do I list all files created today only using shell command under UNIX or Linux operating systems?

You can use the find command as follows to list today's file in current directory only (i.e. no subdirs):
find -maxdepth 1 -type f -mtime -1
Sample outputs:

./.gtk-bookmarks
./.ICEauthority
./.bash_history
./.xsession-errors.old
./.xsession-errors
./.recently-used.xbel
./.dmrc

In this example, find todays directories only
find -maxdepth 1 -type d -mtime -1
Another old but outdated ls command hack is as follows:
ls -al --time-style=+%D | grep $(date +%D)
See the find command man page for more details:
man find

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 12 comments… read them below or add one }

1 Manichattan April 28, 2010 at 2:20 pm

Hi, I love the tips and tutorials that you provide.
Technically, the commands above will find files that were modified in
the last day, not created.
Thanks,
-manichattan

Reply

2 Dennis April 28, 2010 at 10:55 pm

This should give you files modified today (i.e. not last 24hrs)

find -maxdepth 1 -type f -daystart -mtime -1

-daystart
Measure times (for -amin, -atime, -cmin, -ctime, -mmin, and -mtime) from the beginning of today rather than from 24 hours ago. This option only affects tests which appear later on the command line.

Reply

3 muthu raman May 4, 2011 at 1:25 pm

gr8 !!! thx dude… i was searching for this ‘daystart’ thing !!!!

Reply

4 Pankaj May 17, 2011 at 12:45 pm

GREAT !!!!!!!!!!!!!!!
-daystart

Reply

5 Phil Dufault April 29, 2010 at 5:33 pm

There is no present way to track in Unix/Linux when a file was created. Only when it was last modified. There is support for tracking this now in ext4, but hasn’t been added as it’s not standard.

Reply

6 Julie July 14, 2011 at 4:11 pm

great ! This is helpful indeed .

Reply

7 Ramesh October 15, 2012 at 5:02 pm

Hi ,

This was helpful. But can anyone help me for a command which will display files in descending order of the timestamp or dates. Not able to figure it out.

Help on this will be great . Thanks in advance !

Regards,
Ramesh

Reply

8 Phil Dufault October 15, 2012 at 6:25 pm

you mean: ls -lt

Reply

9 Sweta October 9, 2014 at 7:07 pm

hi, I want to get only filenames that are modified today.
i tried
ls -alog temp*.txt –time-style=+%D | grep $(date +%D). this gives me permission,size,date and filename. pls suggest how can i get only the filename.

Reply

10 Sweta October 9, 2014 at 7:11 pm

Hi, i got the solution..Thanks

Reply

11 Gagan December 3, 2014 at 2:04 pm

Hi Sweta,
Please let me know the command you used for this. I have same requirement as you were looking.

Thanks,
Gagan

Reply

12 Phil Dufault December 4, 2014 at 12:17 am

This will do it, it’s not very tidy though:
ls -Alog * –time-style=+%D | grep $(date +%D) | awk ‘{print $NF}’

Reply

Leave a Comment

Tagged as:

Previous Faq:

Next Faq: