How do I find a recent file by date created?
Solution 1
To search the whole filesystem (/
) for
- directories (
-type d
), - called
app
(-name app
), - that were modified more recently than one day (i.e., 24 hours) ago (
-mtime 0
),
...Use:
find / -name app -type d -mtime 0
Source: man find
.
In particular see the explanation of the -mtime
flag and the "find $HOME -mtime 0
" example:
[T]o match -mtime 0, a file will have to have a modification in the past which is less than 24 hours ago.
(Thus the time in days since the file was modified is rounded down to the nearest integer for purposes of being matched by -mtime
.)
Creation is considered a form of modification for the purpose of file timestamps, so this will work even if the file's contents weren't altered after it was created. It will also match folders with modification timestamps in the last day that were created earlier, but you probably don't have many such folders whose exact name is app
.
When a file was created is not typically stored in the filesystem. But the time at which its metadata were last changed (e.g., name/location, ownership, permissions) is stored. If you prefer to go by that to when the file's contents were modified, use -ctime
in place of -mtime
:
find / -name app -type d -ctime 0
For both -mtime
and -ctime
, the original creation of the file qualifies as a modification / status change.
Solution 2
Get all modified file between the date: 2020-02-28
to 2020-03-28
find . -type f -newermt 2020-02-28 -not -newermt 2020-03-28
Solution 3
Command find options:
If you need a specific date range many days ago.
Example find files modified between Feb/1/2013 and Feb/1/2014, in /data/docs directory:
touch --date "2013-02-01" /tmp/start
touch --date "2014-02-01" /tmp/end
find /data/docs -type f -newer /tmp/start -not -newer /tmp/end
You can save list to a text file called findlist.txt as follows:
find /data/docs -type f -newer /tmp/start -not -newer /tmp/end > findlist.txt
Related videos on Youtube
JohnMerlino
Looking to master Trigonometry and Calculus and an interest in Ruby and JavaScript programming languages. I only use Linux (in particular Ubuntu Desktop) and Android. I like to write as well.
Updated on September 18, 2022Comments
-
JohnMerlino over 1 year
If I want to find a file by name, I do the following:
find -name app
If I want to find a file by type, I do the following:
find -name app -type d
However, because app is such a generic name, many results show up. I would like to find a directory named app, which was created today. Is there a flag or command to achieve this?
-
JohnMerlino over 9 yearsI am in a directory which contains a directory called app which was created right now, and using find -name app -type d, retrieves it, but when I add -mtime -1 it doesn't retrieve it.
-
Eliah Kagan over 9 years@JohnMerlino I'm not sure what
-1
should do. But using0
works for me and is explicitly recommended for this purpose in thefind
manpage. -
JohnMerlino over 9 yearsI also came across this article too: digitalocean.com/community/tutorials/…
-
Thomas Weller over 8 yearsHard to believe that I need 5 lines (your 3 + 2 for deleting the temp files) to find files in a certain date range.