文件及目录搜索 – find命令

了解掌握:常用which、whereis、locate简单搜索命令

which命令whereis命令locate命令
搜索依据$PATH 环境变量$PATH 和 $MANPATH 环境变量mlocatedb数据库
搜索结果<命令文件>的<路径><命令文件>的<路径>
<man手册文件>的<路径>
包含着<关键字>的所有<文件和目录>的<路径>
执行方法which <命令名称>whereis <命令名称>yum install -y mlocate
updatedb ## 更新:数据库
locate <文件或目录>的<关键字>
注意:不去搜索</tmp临时目录>

搜索命令

where :查找可执行命令

whereis :查找可执行命令

重点掌握:find 强大的搜索命令

find 基本命令格式

find+ 搜索范围(路径)+ 搜索条件 (文件名、大小、时间戳、所有者、文件类型)

find 搜索条件:文件名

命令:find 路径 -name 文件名 / find 路径 -name "字符"

例:文件名查找,查找文件ifcfg-ens33(具体的文件名

find / -name ifcfg-ens33

查找/root下数字1开头的文件(包含某一个字符的文件名

find /root -name "1*"

find 搜索条件:时间戳

命令:find 路径 -a/c/mtime 时间

- 代表最近多长时间
+ 代表前多少时间
未加+/- 代表指定的时间

例:查找 /tmp 目录下最近半小时访问的文件

find /tmp -amin -30

find 搜索条件:文件大小

命令:find 路径 -size +/-文件大小

例:查找/root 目录下大于10M的文件

find /root -size +10M

find 搜索条件:文件类型

命令:find 路径 -type 文件类型

常见文件类型

f 表示 <普通文件>
d 表示 <目录文件>
l 表示 <链接文件>
b 表示 <块设备文件>
c 表示 <字符设备文件>

例:查找 /root 目录下的所有目录

find /root -type d

find 搜索条件:文件所有者

命令:find 路径 -user 用户名

例:查找/tmp目录下由user01创建的文件

find /tmp -user user01

find 搜索条件:权限

命令:find 路径 -perm <权限值>

例:查找/tmp下可写的文件(权限为222)

find /tmp -perm 222find /tmp -perm 0222

find 组合条件:或与非

命令:

与:find 路径 第一个条件 第二个条件

或:find 路径 第一个条件 -o 第二个条件

非:find 路径 ! 条件

例:

查找/tmp目录下以1开头且小于10k的文件(与:条件同时满足)

find /tmp -name "1*" -size -10k

查找/tmp目录下以1开头或者小于10k的文件(或:多个条件满足一个即可)

find /tmp -name "1*" -o -size -10k

查找/tmp目录下所有不是普通文件的文件

find /tmp ! -type f

指定处理动作

常用的动作

-print 输出(这是默认动作)

-delete 删除

-prune 如果<文件>是<目录>,则不要进入该<目录>

-exec command 重要

find命令对<匹配的文件>执行<该参数>所给出的【shell命令】

命令形式为:command {} \;

常用的find命令例子

1.删除 /root 目录下大于5M的大文件

find /root -size +5M -exec rm -rf {} \;

2.删除旧文件

删除/tmp目录下30天都没有访问过的文件

find /tmp -atime +30 -exec rm -rf {} \;

3.分类归档

把/tmp目录下的所有的txt文件归档为一个文件

find /tmp -name "*txt" -exec tar -rf 1.tar {} \;(使用tar追加)

find /tmp -name "*txt" -exec tar -cf 2.tar {} + ;(使用 + 进行轮询,不需要 \ 进行结尾)

find /tmp -name "*txt" | xargs tar -cf 3.tar (使用管道)

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发