find
,全称 File IN Databank,是一个强大的文件搜索命令,可以根据各种标准如文件名、大小、修改日期等在系统中搜索文件和目录。
find
这个命令适用于所有Linux版本,包括但不限于 Ubuntu、Debian、Fedora、Red Hat、CentOS 等。由于 find
是预安装在所有Linux发行版上的,所以大部分时候并不需要进行额外的安装。
基本的命令语法如下:
find [pathname] [expression]
参数/选项 | 说明 |
---|---|
-name [file] | 根据文件名搜索文件 |
-size [size] | 根据文件大小搜索文件 |
-type [type] | 根据类型搜索文件,如 -type d 为搜索目录 |
-mtime [n] | 根据修改时间搜索文件,n为天数 |
-exec [command] {} ; | 将查找的文件执行指定的命令 |
[linux@bashcommandnotfound.cn ~]$ find / -name filename
[linux@bashcommandnotfound.cn ~]$ find / -size +1M
[linux@bashcommandnotfound.cn ~]$ find . -name "*.txt"
[linux@bashcommandnotfound.cn ~]$ find /home -name "*.log"
[linux@bashcommandnotfound.cn ~]$ find /home -user root -size +10M
[linux@bashcommandnotfound.cn ~]$ find . -mtime -5
[linux@bashcommandnotfound.cn ~]$ find / -empty -type d
[linux@bashcommandnotfound.cn ~]$ find /var/log -mmin -5
这是一个示例,但请小心使用,不要坐数组。
[linux@bashcommandnotfound.cn ~]$ find / -name "*.tmp" -exec rm {} \;
[linux@bashcommandnotfound.cn ~]$ find / -name "*.sh" -exec ls -lh {} \;
[linux@bashcommandnotfound.cn ~]$ find . -type f -perm 0755
[linux@bashcommandnotfound.cn ~]$ find /home -owner root
[linux@bashcommandnotfound.cn ~]$ find /home -mtime +10 -mtime -15
[linux@bashcommandnotfound.cn ~]$ find /etc -name "*.log" -mtime +10
[linux@bashcommandnotfound.cn ~]$ find /var/log -name "*.log" -atime -10