文件搜索命令
1、which
查找二进制可执行文件
查找命令,只返回第一个搜索结果
显示命令别名以及其所在位置
2、whereis
查找二进制文件,以及帮助手册
返回命令所在位置,及其man文件所在位置
3、locate find
locate 查找速度快 非实时查找 模糊查找
依赖于事先构建的索引库
首次安装使用需要手工更新索引库 updatedb
find:实时查找命令 查找速度慢 精确查找
find [查找起始路径] [选项] [查找条件] [处理动作]
查找起始路径:指定具体的目录为起始路径,不指定默认为当前目录
查找条件
按文件名查找
-name 支持通配符 * ? [] [^] 需要用引号括起来
文件的从属关系
-user username:
-group groupname
-nouser
-nogroup
文件的类型
-type
f:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
s:套接字文件
组合测试
与 -a
或 -o
非 -not !
文件大小
-size #代表大小 单位为 KB MB GB
# (#-1,#]
-# [0,#-1] 小于
+# (#,∞) 大于
按时间查找
按天查找 time
-atime
-mtime
# :
-#: 小于
+#: 大于
-amin 分钟
-mmin
按照权限查找:
-perm:文件权限查找
/mode:权限是与的关系
-mode:权限是或的关系
目录层级
-depth
maxdepth
mindepth
处理动作:
-print 默认 输出打印
-ok command {} \;需要用户自己确定
-exec command {} \;不需要确定
-xargs command {} \;管道方式传递
小练习:
1、查找/etc/目录下 文件大小大于10K,用户是root用户,修改时间大于7天,文件类型为普通文件或者管道文件 文件名不是file
# find /etc -size +10k -a -user root -a -mtime +7 -a -not -name file -a ( -type f -o -type p )
# find /tmp/ -maxdepth 4 -mindepth 4 -name file -exec cp {} /tmp/dir1 \;