Home > File & Directory Management > find

Mastering the find Command

This is a guide to the `find` command, which is used to search for files and directories within the file system in Linux. You can efficiently find the files you want by combining various conditions and actions.

Main Options

Try searching and processing files within the file system by combining the various options of the `find` command.

1. Basic Search

2. Time Conditions

3. Size and Permission Conditions

4. Actions

Generated command:

Try combining the commands.

Description:

`find` Executes the command.

Combine the above options to virtually execute commands with AI.

Logical Operators

The `find` command provides logical operators to perform more precise searches by combining multiple conditions.

Main Logical Operators Operators used to combine multiple conditions. AND (`-a`) is applied by default.
Operator Description Example
-and (or omitted) When both the left and right conditions are true `find . -name "*.txt" -and -size +1M`
-or When at least one of the left or right conditions is true `find . -name "*.log" -or -name "*.tmp"`
-not (or !) When the condition is false `find . -not -name "*.txt"`
( ) Grouping conditions (requires escaping) `find . \( -name "*.txt" -or -name "*.doc" \)`

Operator Precedence

The operators of the `find` command are generally evaluated so that actions are processed after expressions. Within conditions, parentheses (`( )`) can be used to explicitly specify precedence. When using parentheses, they must be escaped with a backslash (`\`) as they have special meaning in the shell.

Usage Examples

Practice file searching and management through practical usage examples of the `find` command.

Find all files with the '.log' extension in the current directory

find . -name "*.log"

Searches for all files ending with `.log` in the current location.

Find files larger than 50MB

find /var -size +50M

Searches for all files exceeding 50MB in size under the `/var` directory of the system.

Find 'conf' files modified within the last 7 days

find . -name "*.conf" -mtime -7

Finds `.conf` files modified within the last 7 days in the current directory.

Find all directories with access permission 777

find / -type d -perm 777

Searches for directories with permissions set to 777 across the entire system to check for security risks.

Delete old '.tmp' files

find /tmp -name "*.tmp" -mtime +30 -delete

Finds and deletes all `.tmp` files older than 30 days in the `/tmp` directory.

Execute a specific command on found files (chmod)

find . -name "*.sh" -exec chmod 755 {} \;

Grants execute permissions (755) to all files with the `.sh` extension in the current directory.

Find files larger than 1GB owned by a specific user

find /home -user user1 -size +1G

Searches for files in the `/home` directory that are owned by `user1` and are larger than 1GB.


Same category commands