在使用Linux或macOS日常开发中,熟悉一些基本的命令有助于提高工作效率,find命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。本篇学习记录find命令的基本使用。
首先查看帮助文档。
语法格式:
find [路径] [匹配条件] [文件名]
常用参数如下:
参数 | 参数解释 |
-name | 按文件名查找,支持使用通配符 * 和 ? |
-nouser |
匹配无所属主的文件 |
-perm | 匹配文件权限 |
-nogroup | 匹配无所属组的文件 |
-user | 匹配文件所属主 |
-newer | 匹配比指定文件更新的文件 |
-group | 匹配文件所属组 |
-type | 匹配文件类型 |
-mtime | 匹配最后修改文件内容时间 |
-size | 匹配文件大小 |
-atime | 匹配最后读取文件内容时间 |
-prune | 不搜索指定目录 |
-ctime | 匹配最后修改文件属性时间 |
-exec…… {}\; | 进一步处理搜索结果 |
1. -name pattern
:按文件名查找,支持使用通配符 *
和 ?
查找当前目录下以.conf结尾的文件。
2. -nouser 匹配无所属主的文件
3. -perm匹配文件权限
4. -nogroup 匹配无所属组的文件
5. -user 匹配文件所属主
6. -newer 匹配比指定文件更新的文件
7. -group 匹配文件所属组
8. -type 匹配文件类型
上面查文件时把子目录下的所有文件都找出来了,这里可以加一个-maxdepth选项,查找的深度
例如:
9. -mtime 匹配最后修改文件内容时间——匹配为day天
查找2天前修改的文件,搜索深度为1
查找2天前,5天内修改的文件,搜索深度为1
10. -size 匹配文件大小
查找文件大于10M的文件
查找所有大于10M小于12M的文件
11. -atime n : 在过去 n 天过读取过的文件
12. -prune 不搜索指定目录,结合-path一起使用
-o表示逻辑或or, -a表示逻辑与and, -print打印,前面表示如果为真打印输出
13. -ctime 查找在 n*24 小时内状态发生变化的文件(例如权限)
14. -exec…… {}\; 进一步处理搜索结果
参考
https://www.runoob.com/linux/linux-comm-find.html
https://www.linuxcool.com/find
https://ipcmen.com/find
https://man.linuxde.net/find
https://www.cnblogs.com/minn/p/9986188.html