Linux: Find Files By Date

by on July 3, 2009 · 3 comments· LAST UPDATED July 3, 2010

in

How do I find file by date under UNIX and Linux?

Linux and UNIX like operating systems do not store file creation time. However, you can use file access and modification time and date to find out file by date.

ls Command Example

The syntax is as follows:

ls -l  | grep 'yyyy-mm-dd'
ls -l | grep --color=auto '2006-01-05'

Where,

  • 2006 - Year
  • 01 - Month
  • 05 - Day

You can sort it as follows:

ls -lu | grep --color=auto '2006-01-05'

find Command Example

If you need a specific date range many days ago, than consider using the find command. In this example find files modified between Jan/1/2007 and Jan/1/2008, in /data/images directory:

touch --date "2007-01-01" /tmp/start
touch --date "2008-01-01" /tmp/end
find /data/images -type f -newer /tmp/start -not -newer /tmp/end

You can save list to a text file called output.txt as follows:

find /data/images -type f -newer /tmp/start -not -newer /tmp/end > output.txt

List ALL *.c File Accessed 30 Days Ago

Type the following command

find /home/you -iname "*.c" -atime -30 -type -f

See also:

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

{ 3 comments… read them below or add one }

1 Tom Hansen June 3, 2011 at 2:47 pm

There is an option to find, -newermt, which allows direct date comparisons. It is documented under the “-newerXY” option, where X and Y represent sub-options, which in this example are X=m for modified date, and Y=t for literal time. So for example, “find . -newermt “Sep 1 2006″ -and \! -newermt “Sep 10 2006″ will match all files modified between Sep 1 2006 and Sep 10 2006.

Reply

2 K H Chowdary June 22, 2011 at 7:18 am

How to finad out the files existing with system date using find command.

Reply

3 deepa September 3, 2012 at 5:31 am

You can try this,

ll -lrt or l -lrt

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: