从磁盘上便利需要的文件
语法格式 | find [路径] [选项] [操作] |
---|
- 选项参数对照表
选项 | 含义 |
---|---|
-name | 根据文件名进行查找 |
-perm | 根据文件权限进行查找 |
-prune | 该选项可以排除某些查找目录 |
-user | 根据文件属主进行查找 |
-group | 根据属组进行查找 |
-mtime -n | +n | 根据文件更改时间进行查找 |
-nogroup | 查找无有效属组的文件 |
-nouser | 查找无有效属主的文件 |
-newer file 1 ! file2 | 查找更改时间比file1新但比file2旧IDE文件 |
-type | 按文件类型查找 |
-size -n | +n | 按文件大小查找 |
-mindepth n | 从n级子目录开始搜索 |
-maxdepth n | 最多搜索到n级子目录 |
-
常用选项
-
-name 查找/etc目录下以conf结尾的文件 find /etc -name ‘*.conf’
-
-iname 查找当前目录下文件名为aa的文件,不区分大小写 find ./ -iname ‘aa’
-
-user 查找文件属主为hdfs的所有文件 find . -user hdfs
-
-group 查找文件属组为yarn的所有文件 find . -group yarn’
-
-type
f 文件 find . -type f
d 目录 find . -type d
c 字符设备文件 find . -type c
b 快设备文件 find . -type b
l 链接文件 find . -type l
p 管道文件 find . -type p
-size
-n 大小小于n的文件
+n 大小大于n的文件
n 大小等于n的文件 -
-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 -
-mmin
-n n分钟以内修改的文件
+n n分钟意外修改的文件
/etc目录下30分钟之前修改的文件
find /etc -mmin +30
/etc目录下30分钟之内修改的目录
find /etc -mmin -30 -type d -
-mindepth n 表示从n级子目录开始搜索
在/etc下3级子目录开始搜索
find /etc -mindepth 3 -
-maxdepth n 表示最多搜索到n级子目录
-
perm
find . -perm 664
-prune
通常和-path一起使用,用于将铁定目录排除在条件之外查找当前目录下所有普通文件,但排除test目录 find . -path ./etc -prune -o -type f 查找当前目录下所有普通文件,但排除opt和etc文件 find . -path ./etc -prune -o -path ./otp -prune -o -type f 查找当前目录下所有普通文件,但排除opt和etc文件,但属主为hdfs,且文件大小必须大于500字节 find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs -a -size +500c
- -newer file1
查找etc目录下比a文件新的文件
find /etc -newer a
-
查找/etc目录下大小大于1m的文件
查找/etc目录下小于1字节的文件
对查找到的文件进行操作
- -print 打印输出
- -exec 对搜索到的文件执行特定的操作,格式为-exec ‘command’ {} ;
搜索etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除
find /etc -name ‘.conf’ -size +10k -exec rm -rf {} ;
将/var/log/目录下以log结尾的文件,且更改时间在7天以上的删除
find /var/log/ -name '.log’ -mtime + 7 -exec rm -rf {} ;
搜索etc下的文件(非目录),文件名以conf结尾,且大于10k,将其复制到/root/conf/下
find /etc -name ‘*.conf’ -size + 10 -exec cp {} /root/conf/ ; - -ok
和exec功能一样,只是每次操作都会给用户提示
逻辑运算符
-o : 或者
-a : 与
-not|!:非
locate命令介绍
- 文件查找,所属软件包mlocate
- 不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
- find是默认全部匹配,locate则是默认部分匹配
updatedb命令
- 用户更新/var/lib/mlocate/mlocate.db
- 所使用的配置文件/etc/updatedb.conf
- 该命令在后台cron计划任务中定期执行
whereis
- 作用:查找某个命令的二进制程序文件,帮助文档,源代码文件
选项 | 含义 |
---|---|
-b | 只返回二进制文件 |
-m | 只返回帮助文档文件 |
-s | 只返回源代码文件 |
which
- 作用:仅查找二进制程序文件
选项 | 含义 |
---|---|
-b | 只返回二进制文件 |
各命令使用场景推荐
命令 | 使用场景 | 优缺点 |
---|---|---|
find | 查找某一类文件,比如文件名部分一致 | 功能强大,速度慢 |
locate | 只能查找单个文件 | 功能单一,速度快 |
whereis | 查找程序的可执行文件,帮助文档等 | 不常用 |
which | 只查找程序的可执行文件 | 常用于查找文件的绝对路径 |