Updated: 20 November 2023
Find directories with either foo or bar in their name
find . -type d \( -iname '*foo*' -or -iname '*bar*' \) | sort
Find files modified within the last 6hrs i.e. 0.25 of 1 day
find /home/chris -type f -mtime -0.25
Find files where name (case insensitive) matches ‘*.exe’
find ~/.nuget/packages -iname "*.exe"
Find directories where name starts with ‘site’
find . -type d -name 'site*'
Find any of the named files (risky, test first)
find this-dir -type f \( -name "foo" -o -name "bar" -o -name "log" \)
Find uses ;
(or +
) to terminate the -exec
command. Therefore \;
must be used because ;
is one of the operators (also &&
or ||
) which separates shell commands.
Find files by text in the file.
find . -type f -name "*.java" -exec grep -il string {} \;
-i
: ignore case
-l
: show filenames, not the match.