Skip to Content

4 ways to search files in Linux

In the Linux world, there are a lot of ways to search for files. Each has its own advantages and disadvantages. In this blog post, we will discuss four different ways to search for files in Linux: find, grep, locate, and whereis.

We will also give some tips on how to use each one. Let’s get started!

search files with find command in Linux

The best way to search files in Linux is with the find command. The find command searches through a directory tree and returns a list of files that match the specified criteria. For example, to find all files that have the .txt extension, you would use the following command:

find / -name "*.txt"

The find command can be used to search for files based on a variety of different criteria, including file name, extension, file size, and file permissions. You can also use the find command to search for files in specific directories or to exclude certain files or directories from the search.

One thing to keep in mind when using the find command is that it can be slow to execute, especially if you are searching through a large directory tree. Additionally, the find command can be a bit difficult to understand at first, so be sure to read the man page for more information.

When using the find command, be sure to use the right option when searching through large directory trees. This will prevent the find from returning any error messages. Additionally, you can use the -xdev option to limit the search to a specific filesystem.

Examples of find command in Linux

  1. find files by name in Linux: find / -name “*.txt”
  2. find all files with a specific extension: find / -type f -name “*.txt” -xdev
    • xdev : don’t cross filesystem boundaries
    • type f : only files
  3. find files of a certain size: find / ! -type d -size +1000k
    • ! -type d : exclude directories
    • +1000k : size is greater than 1000 kilobytes
    • – 1000k : size is less than 1000 kilobytes
  4. find empty files and directories: find / -empty
  5. search recursively through directories: find / -name “*.txt” -type f -print0 | xargs -0 grep “foo”
    • name : filename pattern to match
    • type f : file type is file
    • print0 : print results with a NUL character between each result
    • xargs -0 : read input from std

 

search files with grep command in Linux

The second way to search for files in Linux is with the grep command. The grep command is used to search through text files for specific patterns or strings.

For example, to search for all lines in a file that contain the word “Linux”, you would use the following command:

grep "Linux" filename

The grep command is very useful for finding specific strings of text in large files. It can also be used with grep’s powerful regular expressions to match complex patterns.

One downside of the grep command is that it can be slow when searching through large files. Additionally, grep does not work with binary files, so it cannot be used to search through executable files or image files.

When using the grep command, be sure to use the -r or -R option to recursive search through all subdirectories. Additionally, you can use the -i option to ignore case when searching.

Examples of grep command in Linux

  1. Search any line that contains the word in filename on Linux: grep ‘howtouselinux’ filename
  2. Perform a case-insensitive search for the word ‘bar’ in Linux and Unix: grep -i ‘howtouselinux’ filename

 

search files with locate command in Linux

The third way to search files in Linux is with the locate command. The locate command searches through a database of all the files on your system and returns a list of files that match the specified criteria.

For example, to find all files that have the .txt extension, you would use the following command:

locate *.txt

The locate command is much faster than the find command because it does not have to search through a directory tree. However, its database is not as up-to-date as the find command’s directory tree, so it may not always return accurate results.

When using the locate command, be sure to use updatedb command to create a new database. This will ensure that your results are up-to-date. Additionally, you can use the -n option to limit the number of results that are returned.

search files with whereis command in Linux

The fourth way to search files in Linux is with the whereis command. The whereis command searches through all the binaries, libraries, and documentation on your system and returns a list of locations where each item can be found.

Whereis command is faster than find command because whereis command only searches a few locations. 

You can use whereis -l command to check which location will be searched.

For example, to find out where the ls binary is located on your system, you would use the following command:

whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

The whereis command is useful for finding executables, libraries, and documentation. 

When using the whereis command, be sure to use the -b option to search only for binaries. This will speed up the search and return more accurate results. Additionally, you can use the -m option to search only for the manual section.

Keep these tips in mind when searching for files in Linux and you’ll be sure to find what you’re looking for in no time!