Post

Mastering find: A Comprehensive Guide to File Searching in Linux

The find command stands out as a powerful and versatile tool for searching and locating files and directories on a filesystem. Whether you’re a system administrator, a developer, or a Linux enthusiast, mastering the find command can significantly enhance your productivity and efficiency when managing files and directories. Whether you’re looking to perform simple file searches or complex filesystem operations, this guide will serve as your go-to resource for mastering the find command and elevating your Linux command-line prowess. So, let’s dive in and explore the world of file searching in Linux with the find command!

Some common options for the find command in Linux along with descriptions for each option:

OptionDescription
-name <pattern>Search for files or directories with a specific name pattern.
-type <type>Search for files based on their type. Types include f for regular files, d for directories, etc.
-exec <command>Execute a command on each file or directory found.
-size <size>Search for files based on their size. Size can be specified in bytes, kilobytes, megabytes, etc.
-maxdepth <level>Limit the search to a specified directory depth.
-mindepth <level>Start the search from a specified directory depth.
-emptySearch for empty files and directories.
-user <username>Search for files owned by a specific user.
-group <groupname>Search for files belonging to a specific group.
-mtime <days>Search for files that were modified in the last specified number of days.
-atime <days>Search for files that were accessed in the last specified number of days.
-ctime <days>Search for files that were changed in the last specified number of days.
-printPrint the path of the files or directories found (default action).
-deleteDelete the files or directories found. Use with caution!
-pruneDo not descend into specified directories during the search.
-regex <pattern>Search for files using a regular expression pattern.
-iname <pattern>Case-insensitive version of -name.
-ipath <pattern>Case-insensitive version of -path.

Common Options:

-name

The find command in Linux provides the -name option, which allows you to search for files and directories based on their names or patterns. The -name option uses wildcards to match filenames.

Here are some advanced examples demonstrating the usage of find with the -name option:

Example 1: Find Files with a Specific Extension

Find all .txt files in the /home directory and its subdirectories:

1
find /home -type f -name "*.txt"

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.txt": Filters the results to only include files with a .txt extension.

Example 2: Find Files with a Specific Name

Find all files named example.txt in the /var/log directory and its subdirectories:

1
find /var/log -type f -name "example.txt"

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "example.txt": Filters the results to only include files named example.txt.

Example 3: Find Files with Multiple Patterns

Find all .jpg or .png files in the /images directory:

1
find /images -type f \( -name "*.jpg" -o -name "*.png" \)

In this example:

  • /images: Specifies the /images directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -name "*.jpg" -o -name "*.png" \): Filters the results to only include files with a .jpg or .png extension.

Example 4: Find Directories with a Specific Name

Find all directories named backup in the /data directory:

1
find /data -type d -name "backup"

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -name "backup": Filters the results to only include directories named backup.

Example 5: Case-Insensitive Search

Find all .TXT files in the /home directory and its subdirectories (case-insensitive):

1
find /home -type f -iname "*.TXT"

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -iname "*.TXT": Filters the results to only include files with a .TXT extension, ignoring case.

Example 6: Exclude Specific Files or Directories

Find all .log files in the /var/log directory but exclude those under a archive directory:

1
find /var/log -type f -name "*.log" -not -path "*/archive/*"

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.log": Filters the results to only include files with a .log extension.
  • -not -path "*/archive/*": Excludes files under the archive directory.

These examples demonstrate the flexibility of the find command when combined with the -name option. You can customize your searches by specifying various name patterns and combining them with other options to suit your specific requirements.

-type

The -type option in the find command is used to specify the type of files or directories to search for. It allows you to filter the search results based on the type of file or directory (e.g., regular files, directories, symbolic links, etc.).

Here are some advanced examples demonstrating the usage of find with the -type option:

Example 1: Search for Regular Files in the /home Directory

Find all regular files (excluding directories and symbolic links) in the /home directory:

1
find /home -type f

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include regular files.

Example 2: Search for Directories in the /var Directory

Find all directories (excluding regular files and symbolic links) in the /var directory:

1
find /var -type d

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.

Example 3: Search for Symbolic Links in the /usr/bin Directory

Find all symbolic links (excluding regular files and directories) in the /usr/bin directory:

1
find /usr/bin -type l

In this example:

  • /usr/bin: Specifies the /usr/bin directory as the starting point.
  • -type l: Filters the results to only include symbolic links.

Example 4: Search for Block Devices in the /dev Directory

Find all block devices (excluding regular files, directories, and symbolic links) in the /dev directory:

1
find /dev -type b

In this example:

  • /dev: Specifies the /dev directory as the starting point.
  • -type b: Filters the results to only include block devices.

Example 5: Search for Character Devices in the /dev Directory

Find all character devices (excluding regular files, directories, and symbolic links) in the /dev directory:

1
find /dev -type c

In this example:

  • /dev: Specifies the /dev directory as the starting point.
  • -type c: Filters the results to only include character devices.

Example 6: Search for FIFOs (Named Pipes) in the /tmp Directory

Find all FIFOs (named pipes) (excluding regular files, directories, and symbolic links) in the /tmp directory:

1
find /tmp -type p

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type p: Filters the results to only include FIFOs (named pipes).

Example 7: Search for Sockets in the /var/run Directory

Find all sockets (excluding regular files, directories, and symbolic links) in the /var/run directory:

1
find /var/run -type s

In this example:

  • /var/run: Specifies the /var/run directory as the starting point.
  • -type s: Filters the results to only include sockets.

These examples demonstrate how to use the -type option with the find command to filter the search results based on the type of files or directories. The -type option allows you to narrow down the search and focus on specific types of files or directories within a directory tree, making it easier to find and manage files and directories based on their types.

-exec

The find command in Linux provides the -exec option, which allows you to execute commands on the files or directories that match the search criteria. This option is particularly useful for performing operations like renaming, deleting, or modifying files found by the find command.

Here are some advanced examples demonstrating the usage of find with the -exec option:

Example 1: Delete All .tmp Files

Find and delete all .tmp files in the current directory and its subdirectories:

1
find . -type f -name "*.tmp" -exec rm {} \;

In this example:

  • .: Specifies the current directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.tmp": Filters the results to only include files with a .tmp extension.
  • -exec rm {} \;: Executes the rm command on each matching file ({} is replaced by the file name).

Example 2: Change Permissions of .sh Files

Find all .sh files in the /scripts directory and its subdirectories, and change their permissions to 755:

1
find /scripts -type f -name "*.sh" -exec chmod 755 {} \;

In this example:

  • /scripts: Specifies the /scripts directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.sh": Filters the results to only include files with a .sh extension.
  • -exec chmod 755 {} \;: Executes the chmod 755 command on each matching file ({} is replaced by the file name).

Example 3: Compress All .log Files

Find all .log files in the /var/log directory and its subdirectories, and compress them using gzip:

1
find /var/log -type f -name "*.log" -exec gzip {} \;

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.log": Filters the results to only include files with a .log extension.
  • -exec gzip {} \;: Executes the gzip command on each matching file ({} is replaced by the file name).

Example 4: Move All .txt Files

Find all .txt files in the /home/user/documents directory and move them to /backup:

1
find /home/user/documents -type f -name "*.txt" -exec mv {} /backup/ \;

In this example:

  • /home/user/documents: Specifies the /home/user/documents directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.txt": Filters the results to only include files with a .txt extension.
  • -exec mv {} /backup/ \;: Executes the mv command to move each matching file to /backup/ ({} is replaced by the file name).

Example 5: Count Lines in All .csv Files

Find all .csv files in the /data directory and its subdirectories, and count the number of lines in each file using wc -l:

1
find /data -type f -name "*.csv" -exec wc -l {} \;

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.csv": Filters the results to only include files with a .csv extension.
  • -exec wc -l {} \;: Executes the wc -l command to count the number of lines in each matching file ({} is replaced by the file name).

These examples demonstrate the power and flexibility of the find command when combined with the -exec option. You can perform a wide range of operations on the files or directories that match your search criteria.

-size

The find command in Linux provides the -size option to search for files based on their size. You can specify the size criteria using various units such as bytes (c), kilobytes (k), megabytes (M), gigabytes (G), and so on.

Here are some advanced examples demonstrating the usage of find with the -size option:

Example 1: Find Files Larger Than 100MB

Find all files in the /var/log directory that are larger than 100 megabytes:

1
find /var/log -type f -size +100M

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -size +100M: Filters the results to only include files larger than 100 megabytes.

Example 2: Find Files Smaller Than 1KB

Find all files in the /home directory that are smaller than 1 kilobyte:

1
find /home -type f -size -1k

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -size -1k: Filters the results to only include files smaller than 1 kilobyte.

Example 3: Find Files of Exact Size

Find all files in the /etc directory that are exactly 500 bytes in size:

1
find /etc -type f -size 500c

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • -size 500c: Filters the results to only include files that are exactly 500 bytes in size.

Example 4: Find Directories Larger Than 5GB

Find all directories in the /var directory that are larger than 5 gigabytes:

1
find /var -type d -size +5G

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -size +5G: Filters the results to only include directories larger than 5 gigabytes.

Example 5: Find Empty Files

Find all empty files in the /tmp directory:

1
find /tmp -type f -empty

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -empty: Filters the results to only include empty files.

Example 6: Find Files Modified Within Last 7 Days and Larger Than 1MB

Find all files in the /var/www directory that have been modified within the last 7 days and are larger than 1 megabyte:

1
find /var/www -type f -mtime -7 -size +1M

In this example:

  • /var/www: Specifies the /var/www directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime -7: Filters the results to only include files that have been modified within the last 7 days.
  • -size +1M: Filters the results to only include files larger than 1 megabyte.

These examples demonstrate the flexibility of the find command when combined with the -size option. You can customize your searches by specifying various size criteria to suit your specific requirements.

-maxdepth

The find command in Linux offers the -maxdepth option, which specifies the maximum depth in the directory hierarchy at which the search should be conducted. Here are some advanced examples demonstrating the usage of find with the -maxdepth option:

Example 1: Find Files with Maximum Depth

Find all .jpg files in the current directory (and its immediate subdirectories) up to a maximum depth of 2:

1
find . -maxdepth 2 -type f -name "*.jpg"

In this example:

  • .: Specifies the current directory as the starting point.
  • -maxdepth 2: Indicates that the search should go up to a maximum depth of 2 (i.e., include the current directory and its immediate subdirectories).
  • -type f: Filters the results to only include files.
  • -name "*.jpg": Filters the results to only include files with a .jpg extension.

Example 2: Find Directories with Maximum Depth

Find all directories in the /var directory up to a maximum depth of 3:

1
find /var -maxdepth 3 -type d

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -maxdepth 3: Indicates that the search should go up to a maximum depth of 3.
  • -type d: Filters the results to only include directories.

Example 3: Combine -maxdepth with Other Criteria

Find all .log files in the /var/log directory up to a maximum depth of 2:

1
find /var/log -maxdepth 2 -type f -name "*.log"

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -maxdepth 2: Indicates that the search should go up to a maximum depth of 2.
  • -type f: Filters the results to only include files.
  • -name "*.log": Filters the results to only include files with a .log extension.

Example 4: Find Empty Directories with Maximum Depth

Find all empty directories in the /usr directory up to a maximum depth of 4:

1
find /usr -maxdepth 4 -type d -empty

In this example:

  • /usr: Specifies the /usr directory as the starting point.
  • -maxdepth 4: Indicates that the search should go up to a maximum depth of 4.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.

Example 5: Find Files Modified More Than 30 Days Ago with Maximum Depth

Find all files in the /home directory up to a maximum depth of 2 that were modified more than 30 days ago:

1
find /home -maxdepth 2 -type f -mtime +30

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -maxdepth 2: Indicates that the search should go up to a maximum depth of 2.
  • -type f: Filters the results to only include files.
  • -mtime +30: Filters the results to only include files that were modified more than 30 days ago.

These examples demonstrate the versatility of the find command when combined with the -maxdepth option. You can customize your searches by adjusting the maximum depth and combining it with various other options and criteria to suit your specific requirements.

-mindepth

The find command in Linux is a powerful tool used to search for files and directories in a directory hierarchy based on various criteria. The -mindepth option specifies the minimum depth in the directory tree at which the search should begin.

Here are some advanced examples demonstrating the usage of find with the -mindepth option:

Example 1: Find Files with Minimum Depth

Find all files in the current directory (and its subdirectories) that have a minimum depth of 2:

1
find . -mindepth 2 -type f

In this example:

  • .: Specifies the current directory as the starting point.
  • -mindepth 2: Indicates that the search should start at a minimum depth of 2 (i.e., skip the current directory and its immediate subdirectories).
  • -type f: Filters the results to only include files.

Example 2: Find Directories with Minimum Depth

Find all directories in the /home directory that have a minimum depth of 3:

1
find /home -mindepth 3 -type d

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -mindepth 3: Indicates that the search should start at a minimum depth of 3 (i.e., skip the /home directory and its immediate subdirectories).
  • -type d: Filters the results to only include directories.

Example 3: Combine -mindepth with Other Criteria

Find all .txt files in the /var/log directory that have a minimum depth of 2:

1
find /var/log -mindepth 2 -type f -name "*.txt"

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -mindepth 2: Indicates that the search should start at a minimum depth of 2.
  • -type f: Filters the results to only include files.
  • -name "*.txt": Filters the results to only include files with a .txt extension.

Example 4: Find Empty Directories with Minimum Depth

Find all empty directories in the /etc directory that have a minimum depth of 3:

1
find /etc -mindepth 3 -type d -empty

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -mindepth 3: Indicates that the search should start at a minimum depth of 3.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.

Example 5: Find Files Modified Within Last 7 Days with Minimum Depth

Find all files in the /var/www directory that have been modified within the last 7 days and have a minimum depth of 2:

1
find /var/www -mindepth 2 -type f -mtime -7

In this example:

  • /var/www: Specifies the /var/www directory as the starting point.
  • -mindepth 2: Indicates that the search should start at a minimum depth of 2.
  • -type f: Filters the results to only include files.
  • -mtime -7: Filters the results to only include files that have been modified within the last 7 days.

These are just a few examples to demonstrate the usage of find with the -mindepth option. The find command is extremely versatile and can be combined with various other options and criteria to suit your specific needs.

-empty

The -empty option in the find command is used to search for empty files and directories. An empty file has a size of 0 bytes, and an empty directory has no entries inside it (i.e., no files or subdirectories).

Here are some advanced examples demonstrating the usage of find with the -empty option:

Example 1: Find Empty Files in a Directory

Find all empty files in the /tmp directory:

1
find /tmp -type f -empty

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -empty: Filters the results to only include empty files.

Example 2: Find Empty Directories in a Directory

Find all empty directories in the /var directory:

1
find /var -type d -empty

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.

Example 3: Find and Delete Empty Files

Find and delete all empty files in the current directory and its subdirectories:

1
find . -type f -empty -delete

In this example:

  • .: Specifies the current directory as the starting point.
  • -type f: Filters the results to only include files.
  • -empty: Filters the results to only include empty files.
  • -delete: Deletes the empty files found.

Example 4: Find and Delete Empty Directories

Find and delete all empty directories in the /var/log directory and its subdirectories:

1
find /var/log -type d -empty -exec rmdir {} \;

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.
  • -exec rmdir {} \;: Executes the rmdir command to remove each empty directory found ({} is replaced by the directory name).

Example 5: Find Empty Files and Directories in Home Directory

Find all empty files and directories in the current user’s home directory:

1
find ~ -empty

In this example:

  • ~: Specifies the current user’s home directory as the starting point.
  • -empty: Filters the results to only include empty files and directories.

Example 6: Find Empty Files and Exclude Specific Directory

Find all empty files in the /etc directory but exclude the cron.daily directory:

1
find /etc -type f -empty -not -path "/etc/cron.daily/*"

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • -empty: Filters the results to only include empty files.
  • -not -path "/etc/cron.daily/*": Excludes files under the cron.daily directory.

These examples demonstrate how to use the -empty option with the find command to search for and operate on empty files and directories. The -empty option is particularly useful for cleaning up directories, identifying unused files, or troubleshooting issues related to file and directory sizes.

-user

The -user option in the find command is used to search for files and directories owned by a specific user. This option allows you to filter search results based on the owner of the files and directories.

Here are some advanced examples demonstrating the usage of find with the -user option:

Example 1: Find Files Owned by a Specific User

Find all files owned by the user john in the /home directory:

1
find /home -type f -user john

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -user john: Filters the results to only include files owned by the user john.

Example 2: Find Directories Owned by a Specific User

Find all directories owned by the user alice in the /var directory:

1
find /var -type d -user alice

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -user alice: Filters the results to only include directories owned by the user alice.

Example 3: Find Files Owned by a Group

Find all files owned by the group developers in the /opt directory:

1
find /opt -type f -group developers

In this example:

  • /opt: Specifies the /opt directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group developers: Filters the results to only include files owned by the group developers.

Example 4: Find Files Owned by Root User

Find all files owned by the root user in the /etc directory:

1
find /etc -type f -user root

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • -user root: Filters the results to only include files owned by the root user.

Example 5: Find and Change Ownership of Files

Find all files owned by the user olduser in the /data directory and change the ownership to newuser:

1
find /data -type f -user olduser -exec chown newuser:newuser {} \;

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -user olduser: Filters the results to only include files owned by the user olduser.
  • -exec chown newuser:newuser {} \;: Executes the chown command to change the ownership of each file found ({} is replaced by the file name).

Example 6: Find Files Owned by Current User

Find all files owned by the current user in the /home directory:

1
find /home -type f -user $(whoami)

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -user $(whoami): Filters the results to only include files owned by the current user (using $(whoami) to get the current username).

These examples demonstrate how to use the -user option with the find command to search for and operate on files and directories based on their ownership. The -user option is particularly useful for managing file permissions, troubleshooting ownership issues, or performing administrative tasks related to file and directory ownership.

-group

The -group option in the find command is used to search for files and directories that belong to a specific group. This option allows you to filter search results based on the group ownership of the files and directories.

Here are some advanced examples demonstrating the usage of find with the -group option:

Example 1: Find Files Owned by a Specific Group

Find all files owned by the group developers in the /home directory:

1
find /home -type f -group developers

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group developers: Filters the results to only include files owned by the group developers.

Example 2: Find Directories Owned by a Specific Group

Find all directories owned by the group staff in the /var directory:

1
find /var -type d -group staff

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -group staff: Filters the results to only include directories owned by the group staff.

Example 3: Find Files Owned by Root Group

Find all files owned by the root group in the /etc directory:

1
find /etc -type f -group root

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group root: Filters the results to only include files owned by the root group.

Example 4: Find Files Owned by a Secondary Group

Find all files owned by the group ftpusers in the /srv directory:

1
find /srv -type f -group ftpusers

In this example:

  • /srv: Specifies the /srv directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group ftpusers: Filters the results to only include files owned by the group ftpusers.

Example 5: Find and Change Group Ownership of Files

Find all files owned by the group oldgroup in the /data directory and change the group ownership to newgroup:

1
find /data -type f -group oldgroup -exec chgrp newgroup {} \;

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group oldgroup: Filters the results to only include files owned by the group oldgroup.
  • -exec chgrp newgroup {} \;: Executes the chgrp command to change the group ownership of each file found ({} is replaced by the file name).

Example 6: Find Files Owned by Current Group

Find all files owned by the current group in the /home directory:

1
find /home -type f -group $(id -gn)

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -group $(id -gn): Filters the results to only include files owned by the current group (using $(id -gn) to get the current group name).

These examples demonstrate how to use the -group option with the find command to search for and operate on files and directories based on their group ownership. The -group option is particularly useful for managing file permissions, troubleshooting group ownership issues, or performing administrative tasks related to file and directory group ownership.

-mtime

The -mtime option in the find command is used to search for files based on their last modification time. It allows you to filter search results based on the number of days since the file was last modified.

The syntax for -mtime is:

  • -mtime +n: Find files that were last modified more than n days ago.
  • -mtime -n: Find files that were last modified less than n days ago.
  • -mtime n: Find files that were last modified exactly n days ago.

Here are some advanced examples demonstrating the usage of find with the -mtime option:

Example 1: Find Files Modified More Than 7 Days Ago

Find all files in the /home directory that were last modified more than 7 days ago:

1
find /home -type f -mtime +7

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime +7: Filters the results to only include files that were last modified more than 7 days ago.

Example 2: Find Files Modified Less Than 3 Days Ago

Find all files in the /var/log directory that were last modified less than 3 days ago:

1
find /var/log -type f -mtime -3

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime -3: Filters the results to only include files that were last modified less than 3 days ago.

Example 3: Find Files Modified Exactly 1 Day Ago

Find all files in the /tmp directory that were last modified exactly 1 day ago:

1
find /tmp -type f -mtime 1

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime 1: Filters the results to only include files that were last modified exactly 1 day ago.

Example 4: Find and Delete Files Older Than 30 Days

Find and delete all files in the /backup directory that were last modified more than 30 days ago:

1
find /backup -type f -mtime +30 -exec rm {} \;

In this example:

  • /backup: Specifies the /backup directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime +30: Filters the results to only include files that were last modified more than 30 days ago.
  • -exec rm {} \;: Executes the rm command to delete each file found ({} is replaced by the file name).

Example 5: Find and Archive Files Modified Today

Find all files in the /data directory that were last modified today and archive them using tar:

1
find /data -type f -mtime 0 -exec tar -cvzf today_files.tar.gz {} +

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime 0: Filters the results to only include files that were last modified today.
  • -exec tar -cvzf today_files.tar.gz {} +: Executes the tar command to archive the files found ({} is replaced by the file names), and creates a compressed tar archive named today_files.tar.gz.

These examples demonstrate how to use the -mtime option with the find command to search for and operate on files based on their last modification time. The -mtime option is particularly useful for managing files based on their age, performing cleanup tasks, or organizing files based on their modification timestamps.

-atime

The -atime option in the find command is used to search for files based on their last access time. It allows you to filter search results based on the number of days since the file was last accessed.

The syntax for -atime is:

  • -atime +n: Find files that were last accessed more than n days ago.
  • -atime -n: Find files that were last accessed less than n days ago.
  • -atime n: Find files that were last accessed exactly n days ago.

Here are some advanced examples demonstrating the usage of find with the -atime option:

Example 1: Find Files Accessed More Than 7 Days Ago

Find all files in the /home directory that were last accessed more than 7 days ago:

1
find /home -type f -atime +7

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -atime +7: Filters the results to only include files that were last accessed more than 7 days ago.

Example 2: Find Files Accessed Less Than 3 Days Ago

Find all files in the /var/log directory that were last accessed less than 3 days ago:

1
find /var/log -type f -atime -3

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -atime -3: Filters the results to only include files that were last accessed less than 3 days ago.

Example 3: Find Files Accessed Exactly 1 Day Ago

Find all files in the /tmp directory that were last accessed exactly 1 day ago:

1
find /tmp -type f -atime 1

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -atime 1: Filters the results to only include files that were last accessed exactly 1 day ago.

Example 4: Find and Delete Files Older Than 30 Days

Find and delete all files in the /backup directory that were last accessed more than 30 days ago:

1
find /backup -type f -atime +30 -exec rm {} \;

In this example:

  • /backup: Specifies the /backup directory as the starting point.
  • -type f: Filters the results to only include files.
  • -atime +30: Filters the results to only include files that were last accessed more than 30 days ago.
  • -exec rm {} \;: Executes the rm command to delete each file found ({} is replaced by the file name).

Example 5: Find and Archive Files Accessed Today

Find all files in the /data directory that were last accessed today and archive them using tar:

1
find /data -type f -atime 0 -exec tar -cvzf today_files.tar.gz {} +

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -atime 0: Filters the results to only include files that were last accessed today.
  • -exec tar -cvzf today_files.tar.gz {} +: Executes the tar command to archive the files found ({} is replaced by the file names), and creates a compressed tar archive named today_files.tar.gz.

These examples demonstrate how to use the -atime option with the find command to search for and operate on files based on their last access time. The -atime option is particularly useful for managing files based on their access history, performing cleanup tasks, or organizing files based on their access timestamps.

-ctime

The -ctime option in the find command is used to search for files based on their inode change time. The inode change time represents the last time the file’s metadata (such as permissions, ownership, or link count) was changed. This can be different from the file’s modification time (mtime) or access time (atime).

The syntax for -ctime is:

  • -ctime +n: Find files that had their metadata changed more than n days ago.
  • -ctime -n: Find files that had their metadata changed less than n days ago.
  • -ctime n: Find files that had their metadata changed exactly n days ago.

Here are some advanced examples demonstrating the usage of find with the -ctime option:

Example 1: Find Files with Metadata Changed More Than 7 Days Ago

Find all files in the /home directory that had their metadata changed more than 7 days ago:

1
find /home -type f -ctime +7

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ctime +7: Filters the results to only include files that had their metadata changed more than 7 days ago.

Example 2: Find Files with Metadata Changed Less Than 3 Days Ago

Find all files in the /var/log directory that had their metadata changed less than 3 days ago:

1
find /var/log -type f -ctime -3

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ctime -3: Filters the results to only include files that had their metadata changed less than 3 days ago.

Example 3: Find Files with Metadata Changed Exactly 1 Day Ago

Find all files in the /tmp directory that had their metadata changed exactly 1 day ago:

1
find /tmp -type f -ctime 1

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ctime 1: Filters the results to only include files that had their metadata changed exactly 1 day ago.

Example 4: Find and Delete Files with Metadata Changed Older Than 30 Days

Find and delete all files in the /backup directory that had their metadata changed more than 30 days ago:

1
find /backup -type f -ctime +30 -exec rm {} \;

In this example:

  • /backup: Specifies the /backup directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ctime +30: Filters the results to only include files that had their metadata changed more than 30 days ago.
  • -exec rm {} \;: Executes the rm command to delete each file found ({} is replaced by the file name).

Example 5: Find and Archive Files with Metadata Changed Today

Find all files in the /data directory that had their metadata changed today and archive them using tar:

1
find /data -type f -ctime 0 -exec tar -cvzf today_files.tar.gz {} +

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ctime 0: Filters the results to only include files that had their metadata changed today.
  • -exec tar -cvzf today_files.tar.gz {} +: Executes the tar command to archive the files found ({} is replaced by the file names), and creates a compressed tar archive named today_files.tar.gz.

These examples demonstrate how to use the -ctime option with the find command to search for and operate on files based on their inode change time. The -ctime option is particularly useful for managing files based on their metadata changes, performing cleanup tasks, or organizing files based on their metadata change timestamps.

-print

The -prune option in the find command is used to exclude certain directories from the search results. When used with -prune, find will not descend into the specified directories, making the search more efficient by skipping unwanted directories.

Here are some advanced examples demonstrating the usage of find with the -prune option:

Example 1: Search for Files in the /home Directory and Exclude the /home/user1 Directory

Find all files in the /home directory but exclude the /home/user1 directory from the search:

1
find /home -type f -path /home/user1 -prune -o -print

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -path /home/user1 -prune: Excludes the /home/user1 directory from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each file found.

Example 2: Search for Directories in the /var Directory and Exclude the /var/log Directory

Find all directories in the /var directory but exclude the /var/log directory from the search:

1
find /var -type d -path /var/log -prune -o -print

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -path /var/log -prune: Excludes the /var/log directory from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each directory found.

Example 3: Search for Files in the /etc Directory but Exclude Specific Subdirectories

Find all .conf files in the /etc directory but exclude the /etc/network and /etc/init.d subdirectories from the search:

1
find /etc -type f \( -path /etc/network -o -path /etc/init.d \) -prune -o -name "*.conf" -print

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -path /etc/network -o -path /etc/init.d \) -prune: Excludes the /etc/network and /etc/init.d subdirectories from the search.
  • -o: Specifies the logical OR operation.
  • -name "*.conf": Filters the results to only include files with a .conf extension.
  • -print: Prints the pathname of each .conf file found.

Example 4: Search for Files in the /tmp Directory and Exclude Specific Patterns

Find all files in the /tmp directory but exclude files with .tmp and .bak extensions from the search:

1
find /tmp -type f \( -name "*.tmp" -o -name "*.bak" \) -prune -o -print

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -name "*.tmp" -o -name "*.bak" \) -prune: Excludes files with .tmp and .bak extensions from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each file found.

Example 5: Search for Directories in the /usr Directory and Exclude Specific Paths

Find all directories in the /usr directory but exclude the /usr/share/doc and /usr/local/bin paths from the search:

1
find /usr -type d \( -path /usr/share/doc -o -path /usr/local/bin \) -prune -o -print

In this example:

  • /usr: Specifies the /usr directory as the starting point.
  • -type d: Filters the results to only include directories.
  • \( -path /usr/share/doc -o -path /usr/local/bin \) -prune: Excludes the /usr/share/doc and /usr/local/bin paths from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each directory found.

These examples demonstrate how to use the -prune option with the find command to exclude specific directories or paths from the search results. The -prune option can be combined with other find options and expressions to customize the search and exclude unwanted directories effectively.

-delete

The -delete option in the find command is used to delete the files and directories that match the specified criteria directly from the command line. It allows you to perform cleanup tasks or remove unwanted files and directories based on various search conditions.

⚠️ Warning: The -delete option is powerful and irreversible. Always double-check your find command and ensure you are targeting the correct files and directories before using the -delete option to avoid accidental data loss.

Here are some advanced examples demonstrating the usage of find with the -delete option:

Example 1: Delete All Empty Files in the /tmp Directory

Find and delete all empty files in the /tmp directory:

1
find /tmp -type f -empty -delete

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -empty: Filters the results to only include empty files.
  • -delete: Deletes each empty file found.

Example 2: **Delete All Empty Directories in the `/var` Directory**

Find and delete all empty directories in the /var directory:

1
find /var -type d -empty -delete

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.
  • -delete: Deletes each empty directory found.

Example 3: Delete Files Older Than 30 Days in the /backup Directory

Find and delete all files in the /backup directory that were last modified more than 30 days ago:

1
find /backup -type f -mtime +30 -delete

In this example:

  • /backup: Specifies the /backup directory as the starting point.
  • -type f: Filters the results to only include files.
  • -mtime +30: Filters the results to only include files that were last modified more than 30 days ago.
  • -delete: Deletes each file found.

Example 4: Delete Empty Directories and Their Contents in the /data Directory

Find and delete all empty directories and their contents in the /data directory:

1
find /data -type d -empty -exec rmdir {} \;

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -empty: Filters the results to only include empty directories.
  • -exec rmdir {} \;: Executes the rmdir command to remove each empty directory found ({} is replaced by the directory name).

Example 5: Delete Files with a Specific Extension in the /home Directory

Find and delete all .tmp files in the /home directory:

1
find /home -type f -name "*.tmp" -delete

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -name "*.tmp": Filters the results to only include files with a .tmp extension.
  • -delete: Deletes each .tmp file found.

Example 6: Delete Files Owned by a Specific User in the /var/log Directory

Find and delete all files owned by the user john in the /var/log directory:

1
find /var/log -type f -user john -delete

In this example:

  • /var/log: Specifies the /var/log directory as the starting point.
  • -type f: Filters the results to only include files.
  • -user john: Filters the results to only include files owned by the user john.
  • -delete: Deletes each file owned by john found.

These examples demonstrate how to use the -delete option with the find command to search for and delete files and directories based on various criteria. As mentioned earlier, always be cautious when using the -delete option to avoid accidental data loss.

-prune

The -prune option in the find command is used to exclude certain directories from the search results. When used with -prune, find will not descend into the specified directories, making the search more efficient by skipping unwanted directories.

Here are some advanced examples demonstrating the usage of find with the -prune option:

Example 1: Search for Files in the /home Directory and Exclude the /home/user1 Directory

Find all files in the /home directory but exclude the /home/user1 directory from the search:

1
find /home -type f -path /home/user1 -prune -o -print

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -path /home/user1 -prune: Excludes the /home/user1 directory from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each file found.

Example 2: Search for Directories in the /var Directory and Exclude the /var/log Directory

Find all directories in the /var directory but exclude the /var/log directory from the search:

1
find /var -type d -path /var/log -prune -o -print

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -path /var/log -prune: Excludes the /var/log directory from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each directory found.

Example 3: Search for Files in the /etc Directory but Exclude Specific Subdirectories

Find all .conf files in the /etc directory but exclude the /etc/network and /etc/init.d subdirectories from the search:

1
find /etc -type f \( -path /etc/network -o -path /etc/init.d \) -prune -o -name "*.conf" -print

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -path /etc/network -o -path /etc/init.d \) -prune: Excludes the /etc/network and /etc/init.d subdirectories from the search.
  • -o: Specifies the logical OR operation.
  • -name "*.conf": Filters the results to only include files with a .conf extension.
  • -print: Prints the pathname of each .conf file found.

Example 4: Search for Files in the /tmp Directory and Exclude Specific Patterns

Find all files in the /tmp directory but exclude files with .tmp and .bak extensions from the search:

1
find /tmp -type f \( -name "*.tmp" -o -name "*.bak" \) -prune -o -print

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -name "*.tmp" -o -name "*.bak" \) -prune: Excludes files with .tmp and .bak extensions from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each file found.

Example 5: Search for Directories in the /usr Directory and Exclude Specific Paths

Find all directories in the /usr directory but exclude the /usr/share/doc and /usr/local/bin paths from the search:

1
find /usr -type d \( -path /usr/share/doc -o -path /usr/local/bin \) -prune -o -print

In this example:

  • /usr: Specifies the /usr directory as the starting point.
  • -type d: Filters the results to only include directories.
  • \( -path /usr/share/doc -o -path /usr/local/bin \) -prune: Excludes the /usr/share/doc and /usr/local/bin paths from the search.
  • -o: Specifies the logical OR operation.
  • -print: Prints the pathname of each directory found.

These examples demonstrate how to use the -prune option with the find command to exclude specific directories or paths from the search results. The -prune option can be combined with other find options and expressions to customize the search and exclude unwanted directories effectively.

-regex

Certainly! The -regex option in the find command allows for complex pattern matching using regular expressions. Regular expressions (regex) are powerful tools for matching patterns in text, and they can be especially useful when searching for files with specific naming conventions or structures.

Here are more advanced examples demonstrating the usage of find with the -regex option:

Example 1: Find Files with Specific Prefix and Suffix

Find all files in the /home directory that start with “file_” and end with “.txt”:

1
find /home -type f -regex ".*/file_.*\.txt"

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -regex ".*/file_.*\.txt": Matches files that start with “file_” and end with “.txt”.

Example 2: Find Files with Numeric Extensions

Find all files in the /data directory with numeric extensions (e.g., .123, .456):

1
find /data -type f -regex ".*/.*\.[0-9]+"

In this example:

  • /data: Specifies the /data directory as the starting point.
  • -type f: Filters the results to only include files.
  • -regex ".*/.*\.[0-9]+": Matches files with numeric extensions.

Example 3: Find Files with Specific Number Ranges

Find all files in the /files directory with numbers between 100 and 199 in their names:

1
find /files -type f -regex ".*/.*_[1-9][0-9]{2}\."

In this example:

  • /files: Specifies the /files directory as the starting point.
  • -type f: Filters the results to only include files.
  • -regex ".*/.*_[1-9][0-9]{2}\.": Matches files with numbers between 100 and 199 in their names.

Example 4: Find Files with Alphanumeric Patterns

Find all files in the /documents directory that contain “abc” followed by one or more digits:

1
find /documents -type f -regex ".*/.*abc[0-9]+.*"

In this example:

  • /documents: Specifies the /documents directory as the starting point.
  • -type f: Filters the results to only include files.
  • -regex ".*/.*abc[0-9]+.*": Matches files that contain “abc” followed by one or more digits.

Example 5: Find Files with Date Patterns

Find all files in the /backups directory that have a date in the format YYYY-MM-DD in their names:

1
find /backups -type f -regex ".*/[0-9]{4}-[0-9]{2}-[0-9]{2}.*"

In this example:

  • /backups: Specifies the /backups directory as the starting point.
  • -type f: Filters the results to only include files.
  • -regex ".*/[0-9]{4}-[0-9]{2}-[0-9]{2}.*": Matches files with dates in the format YYYY-MM-DD in their names.

Example 6: Find Directories with Specific Naming Patterns

Find all directories in the /media directory that start with “music_” and end with a numeric suffix:

1
find /media -type d -regex ".*/music_[0-9]+"

In this example:

  • /media: Specifies the /media directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -regex ".*/music_[0-9]+": Matches directories that start with “music_” and end with a numeric suffix.

These examples demonstrate the versatility of the find command when combined with the -regex option. Regular expressions provide a powerful way to specify complex patterns for file and directory names, allowing for precise and advanced search capabilities.

-iname

The -iname option in the find command is used to perform a case-insensitive search for files and directories based on their names. This option is particularly useful when you want to search for files and directories without being concerned about the case of the characters in their names.

Here are some advanced examples demonstrating the usage of find with the -iname option:

Example 1: Search for Files with a Specific Extension in the /home Directory

Find all .txt files in the /home directory (case-insensitive):

1
find /home -type f -iname "*.txt"

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -iname "*.txt": Performs a case-insensitive search for files with a .txt extension.

Example 2: Search for Directories with a Specific Name in the /var Directory

Find all directories named data in the /var directory (case-insensitive):

1
find /var -type d -iname "data"

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -iname "data": Performs a case-insensitive search for directories named data.

Example 3: Search for Files with a Specific Name in the /etc Directory

Find all files named hosts in the /etc directory (case-insensitive):

1
find /etc -type f -iname "hosts"

In this example:

  • /etc: Specifies the /etc directory as the starting point.
  • -type f: Filters the results to only include files.
  • -iname "hosts": Performs a case-insensitive search for files named hosts.

Example 4: Search for Files with Multiple Extensions in the /usr Directory

Find all files with .jpg or .png extensions in the /usr directory (case-insensitive):

1
find /usr -type f \( -iname "*.jpg" -o -iname "*.png" \)

In this example:

  • /usr: Specifies the /usr directory as the starting point.
  • -type f: Filters the results to only include files.
  • \( -iname "*.jpg" -o -iname "*.png" \): Performs a case-insensitive search for files with .jpg or .png extensions using the logical OR operation.

Example 5: Search for Files with a Specific Name Pattern in the /tmp Directory

Find all files that start with file and end with .log in the /tmp directory (case-insensitive):

1
find /tmp -type f -iname "file*.log"

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -iname "file*.log": Performs a case-insensitive search for files that start with file and end with .log.

Example 6: Search for Directories with a Specific Prefix in the /opt Directory

Find all directories that start with app in the /opt directory (case-insensitive):

1
find /opt -type d -iname "app*"

In this example:

  • /opt: Specifies the /opt directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -iname "app*": Performs a case-insensitive search for directories that start with app.

These examples demonstrate how to use the -iname option with the find command to perform case-insensitive searches for files and directories based on their names or patterns. The -iname option makes it easier to search for files and directories without worrying about the case of the characters in their names.

-ipath

The -ipath option in the find command is similar to -iname, but it performs a case-insensitive search based on the entire path of files and directories, rather than just their names. This option is useful when you want to search for files and directories based on their paths without being concerned about the case of the characters.

Here are some advanced examples demonstrating the usage of find with the -ipath option:

Example 1: Search for Files in the /home Directory with Specific Paths

Find all .txt files in the /home directory or its subdirectories (case-insensitive):

1
find /home -type f -ipath "*/*.txt"

In this example:

  • /home: Specifies the /home directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ipath "*/*.txt": Performs a case-insensitive search for files with a .txt extension within any subdirectory of /home.

Example 2: Search for Directories in the /var Directory with Specific Paths

Find all directories named data within any subdirectory of /var (case-insensitive):

1
find /var -type d -ipath "*/data"

In this example:

  • /var: Specifies the /var directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -ipath "*/data": Performs a case-insensitive search for directories named data within any subdirectory of /var.

Example 3: Search for Files with Multiple Extensions in the /usr Directory with Specific Paths

Find all files with .jpg or .png extensions within any subdirectory of /usr (case-insensitive):

1
find /usr -type f -ipath "*/file*.{jpg,png}"

In this example:

  • /usr: Specifies the /usr directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ipath "*/file*.{jpg,png}": Performs a case-insensitive search for files that start with file and have .jpg or .png extensions within any subdirectory of /usr.

Example 4: Search for Files in the /tmp Directory with Specific Patterns in Paths

Find all files that start with file and end with .log within any subdirectory of /tmp (case-insensitive):

1
find /tmp -type f -ipath "*/file*.log"

In this example:

  • /tmp: Specifies the /tmp directory as the starting point.
  • -type f: Filters the results to only include files.
  • -ipath "*/file*.log": Performs a case-insensitive search for files that start with file and end with .log within any subdirectory of /tmp.

Example 5: Search for Directories with Specific Prefixes in the /opt Directory with Specific Paths

Find all directories that start with app within any subdirectory of /opt (case-insensitive):

1
find /opt -type d -ipath "*/app*"

In this example:

  • /opt: Specifies the /opt directory as the starting point.
  • -type d: Filters the results to only include directories.
  • -ipath "*/app*": Performs a case-insensitive search for directories that start with app within any subdirectory of /opt.

These examples demonstrate how to use the -ipath option with the find command to perform case-insensitive searches based on the entire paths of files and directories. The -ipath option allows you to search for files and directories without worrying about the case of the characters in their paths, making it easier to find specific files and directories within a directory tree.

This post is licensed under CC BY 4.0 by the author.