常用选项 (找文件)
语法格式
选项参数表:
常用 | 解释 |
---|---|
-name | find /etc -name ‘*conf’ |
-iname | find /etc -name ‘*conf’ 忽略大小写 |
-user | find . -user username |
-group | find . -group groupname |
-type | find . -type f |
-size | find /etc -size -10000c 查找小于10000字节的文件 |
-type 参数
-type 参数 | 对应文件类型 |
---|---|
f | 文件类型 |
d | 目录 |
c | 字符设备文件 |
b | 块设备文件 |
l | 链接文件 |
p | 管道文件 |
-size 参数
-size 参数 | 说明 |
---|---|
-n | find /etc -size -10000c 查找小于10000字节的文件 |
+n | find /etc -size +1M 查找大于10000字节的文件 |
c : 字节
k: 1000字节
M : Mb
-mtime
以天为单位
-mtime 参数 | 说明 |
---|---|
-n | n 天内修改的文件 |
+n | n 天以前修改的文件 |
n | 第 n 天修改的文件 |
示例
- 查找 /etc 下 5 天内修改的文件, 并以 conf 结尾
- 查找 /etc 10 天前修改的文件, 属主为 root
$ find /etc -mtime -5 -name '*conf'
$ find /etc -mtime +10 -user root
-mmin
-mmin 参数 | 说明 |
---|---|
-n | n 分钟内修改 |
+n | n 分钟以前修改 |
-mindepth
要作为 find 第一个选项
从第 n 级子目录开始搜索
要搜索的目录为第一个目录
-maxdepth
-newer
$ find /etc -newer 123.txt # 查找比 123.txt 更新的文件
find 操作 (执行)
- -exec
- -ok : 与 -exec 一致, 需要用户交互
-exec
删除
$ find ./etc -name "*conf" -exec rm -rf {} \;
复制
$ find ./etc -size +1M -exec cp {} ./test/ \;
练习: 把 /var/log/ 下 7 天以上的文件删除
$ find /var/log/ -name "*.log" -mtime +7 -exec rm -rf {} \;
逻辑运算符
- -a 与
- -o 或
- -not | ! 非
$ find . -not -user <username>
$ find . ! -user <username>
$ find -type f -a -user <username> -a -size +300c
# 属主为 ? 或以 .yml 结尾的文件
$ find . -type f -a \( -user <username> -o -name '*.yml' \)
其他查找命令
locate: 默认部分匹配
位于软件包 mlocate
find 是直接从磁盘中查找, locate 是从数据库中查找
数据库文件位置: /var/lib/mlocate/mlocate.db -> 通过 updatedb 更新数据库文件
数据库配置文件: /etc/updatedb.conf
在后台 cron 定定时任务执行更新
whereis: 查找二进制文件
选项 | 说明 |
---|---|
-b | 二进制文件 |
-m | 返回帮助文档 |
-s | 返回源代码文件 |
which: 查找二进制程序文件
which mysql