Cheatsheet & Examples: find

The find
command is used to search for files and directories within a directory hierarchy, supporting various conditions and actions based on file attributes, metadata, or content.
Search for files by name
Example Usage:find /path/to/search -name "filename.txt"
What it does:
Locates files named "filename.txt" starting from the specified directory.
Command-line Arguments Explained:
/path/to/search
: The directory where the search begins.-name "filename.txt"
: Matches files with the exact name provided.
Search for directories by name
Example Usage:find /path/to/search -type d -name "foldername"
What it does:
Locates directories named "foldername" starting from the specified directory.
Command-line Arguments Explained:
-type d
: Filters results to directories only.-name "foldername"
: Matches directories with the exact name provided.
Search for recently modified files (last 24 hours)
Example Usage:find /path/to/search -mtime -1
What it does:
Finds files modified within the last 24 hours.
Command-line Arguments Explained:
-mtime -1
: Matches files modified less than 1 day ago.-1
indicates "within the last day"; use+1
for "more than 1 day ago."
Search for files larger than a specific size
Example Usage:find /path/to/search -size +1M
What it does:
Finds files larger than 1 megabyte.
Command-line Arguments Explained:
-size +1M
: Matches files larger than 1MB.M
stands for megabytes; usek
for kilobytes orG
for gigabytes.
Search for files with specific permissions
Example Usage:find /path/to/search -perm -u+x
What it does:
Finds files with execute permission for the user (owner).
Command-line Arguments Explained:
-perm -u+x
: Checks if the user has execute permission.- The
-
prefix means "all bits in the mode are set";+
means "any bit is set."
Search for files by owner
Example Usage:find /path/to/search -user username
What it does:
Identifies files owned by the specified user.
Command-line Arguments Explained:
-user username
: Matches files owned by the user "username."
Search for empty files or directories
Example Usage:find /path/to/search -empty
What it does:
Locates empty files (zero-size) or empty directories.
Command-line Arguments Explained:
-empty
: Matches files or directories with no content.
Combine multiple search criteria
Example Usage:find /path/to/search -name "*.txt" -and -size +1k
What it does:
Finds text files larger than 1 kilobyte.
Command-line Arguments Explained:
-name "*.txt"
: Matches files ending with ".txt".-and
: Combines conditions; replaces the default logical AND.
Execute a command on found files
Example Usage:find /path/to/search -name "*.log" -exec rm {} \;
What it does:
Removes all .log
files found in the specified directory.
Command-line Arguments Explained:
-exec rm {} \;
: Executes therm
command on each matched file.{}
is a placeholder for the file path;\;
terminates the command.
Search for files within a specific depth
Example Usage:find /path/to/search -maxdepth 2 -name "*.py"
What it does:
Finds Python files up to two levels deep in the directory tree.
Command-line Arguments Explained:
-maxdepth 2
: Limits the search to two levels of subdirectories.-name "*.py"
: Matches files ending with ".py".
Search for files with a specific inode number
Example Usage:find /path/to/search -inum 12345
What it does:
Finds files with the inode number 12345.
Command-line Arguments Explained:
-inum 12345
: Matches files by their inode number.
Search for files accessed in the last 7 days
Example Usage:find /path/to/search -atime -7
What it does:
Identifies files accessed within the last 7 days.
Command-line Arguments Explained:
-atime -7
: Matches files accessed less than 7 days ago.-atime +7
would match files accessed more than 7 days ago.
Search for files by their file type (e.g., symbolic links)
Example Usage:find /path/to/search -type l
What it does:
Locates symbolic links (soft links) in the specified directory.
Command-line Arguments Explained:
-type l
: Matches symbolic links.- Use
f
for regular files,d
for directories,s
for sockets, etc.
Search for files with wildcards in names
Example Usage:find /path/to/search -name "report*"
What it does:
Finds files starting with "report" (e.g., "report1.txt", "report_final.pdf").
Command-line Arguments Explained:
-name "report*"
: Matches names beginning with "report" using a wildcard.
Search for files modified after a specific date
Example Usage:find /path/to/search -newermt "2023-10-01"
What it does:
Finds files modified after October 1, 2023.
Command-line Arguments Explained:
-newermt "2023-10-01"
: Compares modification time to the given date.mt
specifies the modification time; useat
for access time.
Search for files with case-insensitive names
Example Usage:find /path/to/search -iname "report.txt"
What it does:
Finds files named "report.txt" regardless of case (e.g., "Report.txt", "REPORT.TXT").
Command-line Arguments Explained:
-iname "report.txt"
: Case-insensitive name match.-name
is case-sensitive;-iname
ignores case.
Delete found files instantly
Example Usage:find /path/to/search -name "*.tmp" -delete
What it does:
Deletes all .tmp
files found in the specified directory.
Command-line Arguments Explained:
-delete
: Removes matched files immediately.- Must be the last option in the command; cannot be combined with
-exec
.
Search for files matching a regular expression
Example Usage:find /path/to/search -regex ".*\.log$"
What it does:
Finds files matching the regular expression (e.g., files ending with ".log").
Command-line Arguments Explained:
-regex ".*\.log$"
: Applies a regex pattern to file paths.- Use
.*
for any characters and$
to match the end of a filename.
Search for files not matching a condition
Example Usage:find /path/to/search -not -name "*.txt"
What it does:
Lists all files except those ending with ".txt".
Command-line Arguments Explained:
-not
: Negates the preceding condition.-name "*.txt"
: Matches specific files;-not
excludes them.
Search for files by file group
Example Usage:find /path/to/search -group developers
What it does:
Identifies files belonging to the "developers" group.
Command-line Arguments Explained:
-group developers
: Matches files with the specified group ownership.
Subscribe to my newsletter
Read articles from Hong directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Hong
Hong
I am a developer from Malaysia. I work with PHP most of the time, recently I fell in love with Go. When I am not working, I will be ballroom dancing :-)