herrdu / notes

0 stars 0 forks source link

Linux command:find #35

Open herrdu opened 3 years ago

herrdu commented 3 years ago

In this tutorial on how to use the ‘Find command’ in Linux, we will discuss in brief what is find command & will also discuss some examples for the same.

Find command is a pretty useful command for easily locating files & folders in Linux. What makes it a powerful command is that we can use a number of search criteria/options to refine the search.

It can be found & used on almost all Linux distros by default.

Recommended Read: How to use NMAP command to test Server/Network Security

Also Read: How to create a free SSL certificate using Let’s Encrypt in Linux

Syntax for using Find command To use the find command, the basic syntax is:-

find location search-criteria search-term

Now that we have some understanding of what the find command is & how to use the find command in Linux. Let’s discuss some examples as well,

Examples of the FIND command in Linux

查找文件

Finding files on the system To find all the files in the ‘/’ folder i.e. root directory, use,

find / -type f

To search for the file in a particular directory, use,

find /etc/ -type f

查找目录

Finding directories on the system To find all the folders/directories in the ‘/’ folder i.e. root directory, use,

find / -type d

To look for all the directories in a particular directory, use,

find /etc/ -type d

根据文件名查找

Finding files based on the name If you know the name of the file or folder you are looking for, then you can also use that to make search easy & fast with the following command,

find /etc -iname “*.txt”

This shows all the files in the /etc folder with extension .txt. One thing to consider here is that it will ignore a case-sensitive file. It will show all the files ending with .txt but will ignore files ending with .TXT or .Txt.

To include all such files as well, we can use ‘-name’ instead of ‘-iname’, for example,

find /etc -name “*.txt”

根据文件名反向查找

Invertive name search Find command can also be used to exclude some files & only show the remaining files, use,

find /etc -not -name “*.txt”

above command will list all the files & directories that do not have extension “.txt” at the end.

根据大小查找

Finding files/directories with size With the find command, we can also find files based on the file sizes. Use the following example as reference,

find /etc -type f -size 2M

This will show all the files in the /etc folder with the size of 2 Megabytes.

多条件“且”查找

Combining search criteria We can also combine more than one search option to produce a more refined search,

多条件“且”查找

find /etc -name ‘test’ ! -name ‘.php’

here, it will find all the files with the name ‘test’ at the start in ‘/etc’ folder which does not have extension .php. “!” here is the equivalent of AND operator.

Also, we can combine two search criteria & produce results when any of the two search criteria are satisfied.

多条件“或”查找

find /etc -name ‘test’ -o -name ‘.txt’

Here “-o” is equivalent to OR operator.

根据权限查找

Search based on file permissions To find files based on their permissions, use,

find /etc -type f -perm 0400

This will show all the files in the /etc folder with the permission of 0644.

find /etc -type f -perm /u=r

The result for the above command will show all files for a user with only read permissions.

根据所有者和组查找

Finding files with user & group ownership Similar to how we can locate files with particular permissions, we can also use find command to locate files with a particular owner,

find / -user dan

Here, we are locating all the files that are created by user ‘dan’. Similarly, we can also search for files or folders that are owned by a group by replacing -user with -group.

find / -group dan

根据修改时间、打开时间、更改时间查找

Finding files based on their modification time, Access time & Change time

find / -mtime 10

It will find all the files that were modified in the last 10 days. Replace mtime with -atime to find all the files that were accessed in the last 10 days.

find / -cmin -60

It will find all the files that were changed in the last 60 minutes.

find / -mmin -60

It will find all the files modified in the last 60 minutes.

find / -amin -60

It will find all the files accessed in the last 60 minutes.

显示所以被找到的文件

Listing all the found files To get all files and present them in order as ‘ls command’ would, use,

find . -exec ls -ld {} \;

This will show all the files in output as would be shown by ls command.

查找并删除文件

Finding & deleting the found files We can also combine some options to locate files & then can also perform an operation to delete them, all in a single command,

find /etc -type f -name *.txt -size -1M -exec rm -f {} \;

This command will find all the files with .txt as an extension with a size of less than 1 Megabyte & will execute the rm/delete command on found files.

Getting Help

Like with any other Linux command, we can also take help from the OS documentation to get more detailed information about the command. Use,

find –help

how to use find command in linux With this, we complete our tutorial on how to use the FIND command in Linux. These are only some examples, certainly, there are plenty of ways that you can use the find command to get what you need. If you run into any issues or have any questions, please do send us using the comment box below.