Linux Find command is one of the most powerful tools in the Linux system administrator tool library. It allows us to search for files and directories in the directory hierarchy based on an expression given by the user, applying the user to each matching file. specified operation. The following article will show you how to use the Find command. I hope it will be helpful to you.
Linux Find command
Use the find command to determine the file permissions, type, date, ownership, size Wait to search for files. It can also be used in conjunction with other tools, such as grep or sed to perform operations on these files
Before discussing how to use the find command, let's first understand the basic syntax:
find [options] [path...] [expression]
Description:
● Options attribute: Controls the processing of symbolic links, debugging options and optimization methods. ● Path... attribute: Defines the starting directory where find will search for files. ● Expression attribute: consists of "options", "search mode" and "operations separated by operators". Let’s take a look at the following example:find -L /home/projects/ -name "*.js" -exec chmod 644 {} \;
How to find files by type?
To specify the file type to be found, you need to use the -type parameter. You can use the following descriptors to specify file types: ● f: Regular file ● d: Directory ● l: Symbolic link●●c: Role device●b: Block device●p: Named pipe (FIFO)● s: Socket
Example:
If you want to find all directories in the current working directory, you can use:find . -type d
find / -type c
How to find files by name?
Finding files by name is probably the most common use of the find command. To find files by name, pass the -name option along with the name of the file you want to search for.Example:
To search for a file named document.pdf in the /home/linuxize directory, you can use the following command:sudo find /home/linuxize -type f -name document.pdf
sudo find /home/linuxize -type f -iname document.pdf
How to find files by extension?
Searching for files by extension is the same as searching for files by name.For example:
If you want to find all files ending with .log.gzinside /var/log/nginx directory, you can use:find /var/log/nginx -type f -name '*.log.gz'
find /var/log/nginx -type f -not -name '*.log.gz'
How to find files by size?
To find files based on their size, you need to pass the -size parameter along with the size condition. File sizes can be specified using the following suffixes: ● b: 512-byte blocks (default) ● c: Bytes ● w: Double-byte words ● k:Kilobytes ● M:Megabytes ● G:Gigabytes For example: To be in / To find all files in the tmp directory that are exactly 1024 bytes, you can run the following command:find /tmp -type f -size 1024c
find . -type f -size -1M
find . -type f -size +1M
find . -type f -size +1M -size 21M
How to find files by modification date?
The find command can also search for files based on when they were last modified, accessed, or changed. Same as when searching by size, you can use the plus and minus signs to specify greater or less than.For example:
You modified a dovecot configuration file a few days ago, but you forgot the file name. We can easily filter all files in the /etc/dovecot/conf.d/ directory ending in .conf that have been modified in the past 5 days:find /etc/dovecot/conf.d -name "*.conf" -mtime 5
find /home -mtime +30 -daystart
How to find files by permissions?
To filter files based on file permissions, you need to use the -perm option.For example:
要在/var/www/html目录中查找权限为775的所有文件:
find /var/www/html -perm 644
还可以使用减号-或斜杠/为数字模式添加前缀。
当斜杠/用作前缀时,至少一个类别(用户,组或其他类别)必须至少为文件匹配设置相应的位。
find . -perm /444
说明:搜索对用户,组或其他人设置了读权限的所有文件。
如果使用减号-作为前缀,则必须至少设置要匹配的文件。
find . -perm -664
说明:搜索对所有者和组具有读写权限的文件,并且其他用户可以读取。
如何按所有者查找文件?
要查找特定用户或组拥有的文件,可以使用-user和-group选项。
例如,要搜索用户拥有的所有文件和目录linuxize,可以运行:
find / -user linuxize
这是更高级的示例,假设是希望查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为nginx:
find / -user www-data -type f -exec chown nginx {} \;
相关视频教程推荐:《linux教程》
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
The above is the detailed content of How to use the Find command to find files in Linux. For more information, please follow other related articles on the PHP Chinese website!