Using Find Command in Bash Script


In Linux and Bash scripting, the “find” command stands out as a powerful and versatile tool. With its numerous options and expressions, the find command empowers users to locate files and directories based on specific criteria, making it an essential component of any developer’s toolkit. In this article, we will delve into the various ways the find command can be utilized in Bash scripting to streamline file management and improve productivity.

1: Finding files based on type

When working with the find command in Bash scripting, the -type option proves to be incredibly useful for targeting files of specific types. For instance, if you intend to locate all directories within the current directory, employ the subsequent command:

#!bin/bash

find . -type d

2: Finding files based on extension

Another way to find files on Linux using the find command is by searching it on the basis of its extension, below is the syntax for it:

find /path/to/search -name "*.txt"

I have used the above given syntax to find files having .sh extensions in the current directory:

find -name "*.sh"

3: Finding files based on size

To pinpoint files based on their sizes, the -size option of the Find command comes in handy. For instance, if you wish to identify all files in the current directory with a size exceeding 1MB, execute the subsequent command:

#!bin/bash

find . -size -<file-size-MB>

In a similar fashion, if you aim to search for files with a size greater than 1 megabyte, you can utilize the provided code:

#!bin/bash

find . -size +<file-size-MB>

4: Finding files based on name

One of the primary purposes of the find command is to locate files by their names. By utilizing the -name option, you can specify the desired filename to search for. For instance, if you seek to find all files within the current directory that contain the term “file” in their name, execute the subsequent command:

#!/bin/bash

find . -name "*[name-of-file]*"

The asterisk (*) serves as a versatile wildcard character that can match any character or sequence of characters. In this example, I have conducted a search for files named “file” within the current directory, utilizing the power of the wildcard character as follows:

5: Finding files based on ownership

To identify files based on their owner, the -user option of the Find command can be utilized. For instance, if you intend to find all files in the current directory owned by a specific user, employ the following command:

#!/bin/bash

find . -user <user-name>

After successfully locating the desired files, you might find the need to carry out various actions on them, such as deletion or copying to another destination:

A screenshot of a computer Description automatically generated

6: Finding files based on modification time

To search for files based on their modification time, the -mtime option of the Find command proves to be highly effective. For instance, if you wish to locate all files in the current directory that have been modified within the last 3 days, utilize the following command::

#!/bin/bash

find . -mtime -3

By specifying “-3” as the argument, you indicate that the files should have been modified within the past 3 days:

Conclusion

In Bash scripting, the find command is an indispensable tool for locating files and directories based on specific criteria. With its vast array of options and expressions, it empowers developers to streamline file management tasks and boost productivity.

Print Friendly, PDF & Email
Categories
Tags