find命令总结
程序员文章站
2022-03-28 21:22:10
find命令 find命令常用来查找文件或目录,可以根据给定的路径和表达式查找所需的文件或目录。 本文只总结一些常用的用法,更详细的说明见 man find 和 info find 。 语法格式 默认路径为当前路径, 若服务器负载较高,尽量不要在高峰期使用find命令 默认参数是 print 常用参 ......
find命令
find命令常用来查找文件或目录,可以根据给定的路径和表达式查找所需的文件或目录。
本文只总结一些常用的用法,更详细的说明见man find和 info find。
语法格式
find [参数] [路径] [查找和搜索范围]
- 默认路径为当前路径,若服务器负载较高,尽量不要在高峰期使用find命令
- 默认参数是-print
常用参数
参数 | 说明 |
---|---|
-name | 按名称查找 |
-size | 按大小查找 |
-user | 按文件属主查找 |
-type | 按类型查找 |
-mtime | 按照文件的更改时间查找 |
-atime | 按照文件的访问时间查找 |
-perm | 按照文件权限查找 |
-regex | 按照正则表达查找 |
大多数情况下,-name足以解决许多问题,碰到复杂的情况,可以使用正则-regex。
需要注意的是-regex不是匹配文件名,而是匹配完整的文件名(包括路径)。
简单实例
使用-name参数查看/etc目录下面所有的.conf结尾的配置文件:
find /etc -name '*.conf'
使用-size参数查看/etc目录下面大于2m的文件:
find /etc -size +2m
搜索当前目录下七天内被访问过的所有文件:
find . -type f -atime -7
找出/var/log下不是以.log结尾的文件:
find /var/log/ -type f ! -name '*.log'
找出/opt/logs下包含ab2019-05并以.log结尾的文件:
find /opt/logs/ -regex '.*ab.*2019-05.*.log'
配合exec的用法
格式
find [参数] [路径] [查找和搜索范围] -exec [命令] \;
-exec 参数后面跟的是 command 命令,它的终止是以“;”为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
实例
查看当前目录所有文件的属性:
find . -type f -exec ls -l { } \;
找到/opt/logs下7天以前的日志文件并删除它们:
find /opt/logs -name '*.log' -mtime +7 -exec rm -rf {} \;
注意,尽量不要在生产环境使用rm -rf。
上一篇: scp 从另一台linux服务器拷贝文件或文件目录
下一篇: 为什么越来越多的人喜欢拍Vlog?