Linux / UNIX: Displaying Today’s Files Only

last updated in Categories

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:



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


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

16 comment

  1. 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.

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

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

    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.

    1. Nice one thanks.

      I now use it with:
      less `find -maxdepth 1 -type f -daystart -mtime -1`

      which opens the latest file in less, useful for log files where only one file will have “today’s” timestamp.

  3. 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.

  4. 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 !


  5. 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.

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


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

    Still, have a question? Get help on our forum!