Shell中如何用find命令查找指定文件或目录
作者:Sunny_Future
find命令是Linux中用于查找文件或目录的工具,它可以根据文件名、类型、大小、权限、所有者等多种属性进行搜索,常用选项包括-name按名称查找、-type按类型查找、-size按大小查找等,find还能配合-exec执行特定命令
find命令查找指定文件或目录
描述
搜索文件或目录
用法
find [命令选项] [路径] [表达式选项]
选项
选项 | 用法 |
---|---|
-empty | 查找空白文件或目录 |
-group | 按组查找 |
-name | 按文档名称查找 |
-iname | 按文档名称查找,且不区分大小写 |
-mtime | 按修改时间查找 |
-size | 按容量大小查找 |
-type | 按文档类型查找,文件(f)、目录(d)、设备(b,c)、链接(l)等 |
-user | 按用户查找 |
-exec | 对找到的档案执行特定的命令 |
-a | 并且 |
-o | 或者 |
举例
查找当前目录下名称为hello.txt的文档
[root@test ~]# find -name hello.txt
查找/root 目录下所有名称以.log结尾的文件
[root@test ~]# find /var/log/ -name "*.log"
不区分大小写查找文件 test
[root@test ~]# find -iname "test"
查找系统中所有的空白文件
[root@test ~]# find / -empty
查找系统中所属组为tom的文件
[root@test ~]# find / -group tom
查找系统中所有3天内被修改过的文件
[root@test ~]# find / -mtime -3
查找系统中所有4天前被修改过的文件
[root@test ~]# find / -mtime +4
查找系统中2天前的当天被修改过的文件
[root@test ~]# find / -mtime 2
查找当前目录下大于10MB的文件
[root@test ~]# find ./ -size +10M
查找当前目录下的所有普通文件
[root@test ~]# find ./ -type f
查找计算中tom所拥有的所有文件
[root@test ~]# find / -user tom
查找当前目录下大于1MB的文件后列出文件的详细信息
[root@test ~]# find ./ -size +1M -exec ls -l {} \;
查找计算机中所有大于1MB的文件
[root@test ~]# find / -size +1M -a -type f
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。