3.1. 语法格式
find [路劲][选项][操作]
选项参数对照表
3.2.-name
查找 / etc / 目录下以. conf 结尾的文件
find /etc/ -name "*.conf"
-iname 不区分大小写
find /etc/ -iname "*.conf"
-user 查找当前目录为 root 用户的文件
- find ./ -user root
- 3.3.-type
文件的类型
f 文件
d 目录
c 字符设备文件
b 块设备文件
l 链接文件
p 管道文件
- find . -type f
- find . -type d
- 3.4.-size
文件大小
-n 小与 n 的文件
+n 大于 n 的文件
查找 / etc 目录下小与 100k 的文件
find /etc -size -100k
查找 / etc 目录下大于 1M 的文件
- find /etc -size +1M
- 3.5.-mtime
修改时间
-n n 天以内修改的文件
+n n 天以外修改的文件
n 正好 n 天修改的文件
查找 / etc 目录下 5 天之内修改并且以 conf 结尾的文件
find /etc -mtime -5 -name '*.conf'
查找 / etc 目录下 10 天之前修改并且属主为 root 的文件
- find /etc -mtime +10 -user root
- 3.6.-mmin
-n n 分钟以内修改的文件
+n n 分钟以外修改的文件
修改 / etc 目录下 30 分钟以内修改的目录
- find /etc -mmin -30 -type d
- 3.7.-mindepth
表示从 n 级子目录开始搜索
- find /etc -mindepth 3 -type -f
- -madepth n
表示最多搜索到 n-1 级子目录
3.8. 操作 - exec
对搜索的文件常用操作
-print 打印输出
-exec 对文件执行特定的操作
-ok 和 exec 功能意义, 只是每次操作都会给用户提示
-exec 的格式为
-exec 'command' {} \
例子一:
搜索 / home/shell_learn / 下的文件, 文件名以. sh 结尾, 且修改时间在一个星期之内的, 然后将其删除
- # 打印
- find /home/shell_learn/ -type f -name '*.sh' -mtime -7 -print
- # 复制
- find /home/shell_learn/ -type f -name '*.sh' -mtime -7 -exec cp {
- } /home/shell_learn/test/ \;
- # 删除
- find /home/shell_learn/ -type f -name '*.sh' -mtime -7 -exec rm -rf {
- } \;
3.9.locate 命令
locate 不同于 find 命令是在整块磁盘中搜索, locate 命令是在数据库文件中查找
find 是默认全局匹配, locate 则是默认部分匹配
updatedb 命令
用户更新 / var/lib/mlocate/mlocate.db
所使用的配置文件 / etc/updatedb.conf
实例: updatedb 命令把文件更新到数据库 (默认是第二天系统才会自动更新到数据库), 否则 locate 查找不到
- [[email protected]_0_9_centos shell_learn]# touch 789.txt
- [[email protected]_0_9_centos shell_learn]#
- [[email protected]_0_9_centos shell_learn]# locate 789.txt
- [[email protected]_0_9_centos shell_learn]#
- [[email protected]_0_9_centos shell_learn]# updatedb
- [[email protected]_0_9_centos shell_learn]#
- [[email protected]_0_9_centos shell_learn]# locate 789.txt
- /home/shell_learn/789.txt
- [root@VM_0_9_centos shell_learn]#
3.10 .whereis 命令
实例
- [[email protected]_0_9_centos shell_learn]# whereis MySQL
- MySQL: /usr/bin/MySQL /usr/lib64/MySQL /usr/include/MySQL /usr/share/MySQL /usr/share/man/man1/MySQL.1.gz
- [root@VM_0_9_centos shell_learn]#
- [[email protected]_0_9_centos shell_learn]# whereis -b MySQL
- MySQL: /usr/bin/MySQL /usr/lib64/MySQL /usr/include/MySQL /usr/share/MySQL
- [root@VM_0_9_centos shell_learn]#
- [[email protected]_0_9_centos shell_learn]# whereis -m MySQL
- MySQL: /usr/share/man/man1/MySQL.1.gz
- [root@VM_0_9_centos shell_learn]#
- 3.11.which
作用: 仅查找二进制程序文件
- [[email protected]_0_9_centos shell_learn]# which MySQL
- /usr/bin/MySQL
- [root@VM_0_9_centos shell_learn]#
3.12. 各查找命令总结
来源: http://www.bubuko.com/infodetail-3109165.html