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.-1indicates "within the last day"; use+1for "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.Mstands for megabytes; usekfor kilobytes orGfor 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 thermcommand 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 +7would 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
ffor regular files,dfor directories,sfor 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.mtspecifies the modification time; useatfor 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.-nameis case-sensitive;-inameignores 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;-notexcludes 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.

