Finding files and directories in Linux is an essential skill for any system administrator. The fd command is a command-line tool used to find files and directories in Linux. It is a simple and fast alternative to the find command. Compared to the find command, the fd command has more intuitive syntax, colorized output, and faster search speed. It also supports the use of regular expressions and can ignore hidden files and directories by default.
In this post, you will learn how to find files with fd command in Linux.
Install the fd Command
By default, the fd command is included in the default repository of all major operating systems.
For Debian and Ubuntu operating systems, install the fd command using the following command:
apt-get install fd-find -y
For RHEL, Rocky Linux, and Fedora operating systems, install the fd command using the following command:
dnf install fd-find -y
After installing the fd command, you can check the version of the fd command with the following command:
fd --version
You will get the following output:
fd 7.3.0
Also Read
Find a File with Find and Locate Commands in Linux
Basic Syntax of fd Command
The basic syntax of the fd command is shown below:
fd [OPTION] [PATTERN] [PATH]
A brief explanation of each option is shown below:
- -H – Include hidden files and directories in search results.
- -I – Show the search results that would be ignored by .gitignore, .ignore, or .fdignore files.
- -s – Perform a case-sensitive search.
- -i – Perform a case-insensitive search.
- -a – Show absolute instead of relative paths.
- -L – Follow symlinks.
- -j – Used to define the number of threads used for searching.
The fd Command Basic Usage
Using the fd command without any options will search all files and directories in your current working directory:
fd
You will get the following output:
directory1 directory1/my-File1.txt directory1/my-file.txt directory2 directory2/my-File2.txt directory2/my-file2.txt directory3 directory3/File4.txt directory3/file2.png directory3/man directory3/women
By default, the fd command will not show the hidden files in the output. You can use the -H option to list all files, including the hidden files.
fd -H
Output:
.allow .git directory1 directory1/my-File1.txt directory1/my-file.txt directory2 directory2/my-File2.txt directory2/my-file2.txt directory3 directory3/File4.txt directory3/file2.png directory3/man directory3/women
Use the -p option to search all files in the specified directory:
fd -p directory1
Output:
directory1 directory1/my-File1.txt directory1/my-file.txt
Find File with String Match
You can use the -F option to find a file that matches a string containing regular expressions.
fd -F my-file
Output:
directory1/my-File1.txt directory1/my-file.txt directory2/my-File2.txt directory2/my-file2.txt
Find Case Sensitive File
You can use the -s option to enable case sensitivity and show only case-sensitive files in the result.
fd -s file
Output:
directory1/my-file.txt directory2/my-file2.txt directory3/file2.png
Find File By Type
You can use the -t option to find a file by its type.
For example, to find all directories and sub-directories in your current working directory, run the following command:
fd -t d
Output:
directory1 directory2 directory3 directory3/man directory3/women
To find only regular files use the -t option with the f indicator:
fd -t f
Output:
directory1/my-File1.txt directory1/my-file.txt directory2/my-File2.txt directory2/my-file2.txt directory3/File4.txt directory3/file2.png
To find only executable files, use the -t option with the x indicator:
fd -t x
To find only empty files and directories, use the -t option with the e indicator:
fd -t e
Also Read
How to Use Rsync to Copy/Sync Files Between Servers
Find File By Extension
You can use the -e option to find a file by their extensions.
To find all .png files, run the following command:
fd -e png
Output:
directory3/file2.png
To find both text and png files, run the following command:
fd -e png -e txt
Output:
directory1/my-File1.txt directory1/my-file.txt directory2/my-File2.txt directory2/my-file2.txt directory3/File4.txt directory3/file2.png
Find File By Location
You can use the -p option to find a file from a specified location.
fd file.txt -p directory1
Output:
directory1/my-file.txt
You can also find all files from multiple locations.
For example, to find all regular files from directory1 and directory2, run the following command:
fd . ./directory1 ./directory2 -t f
Output:
directory1/my-File1.txt directory1/my-file.txt directory2/my-File2.txt directory2/my-file2.txt
Find File By Size
You can use the -S option to find the file by their size.
For example, to find all files with a size 1 MB or larger, run the following command:
fd -S +1m
Run the following command if you want to find all files with size 1 MB or smaller:
fd -S -1m
Find File By Data
The fd command will also allow you to find files on the basis of the creation date. You can specify the duration of the week, day, time, or date.
For example, find all files that are changed before “2022-02-02 10:00:00,” run the following command:
fd -t x --changed-before "2022-02-02 10:00:00"
To find all files that are changed within two weeks, run the following command:
fd -t x --changed-within 2week
To find all files that are changed within five days, run the following command:
fd -t x --changed-within 5day
Conclusion
In this post, we explained the fd command with different examples to show you how to find files using your custom parameters. Try it on VPS hosting from Atlantic.Net!