linux文档内容查找操作,Linux文件查找工具之find(详解)

find详解

一.find命令是什么?

实时查找工具,遍历指定目录中的所有文件完成查找。

二.find的工作特性:

实时查找

精确查找、支持众多查找标准

查找速度略慢

三.find的用法:

find [OPTIONS][查找路径][查找条件][处理动作]

(1)查找路径:指定具体的搜索目标的起始路径;默认为当前目录;

(2)查找条件:指定的查找标准,可根据文件名、大小、类型、从属关系、权限等标准进行。

根据文件名查找:

-name ‘FILENAME’:对文件名进行精确匹配;

支持支持glob风格的通配符:*, ?, [], [^]

-iname ‘FILENAME’:文件名匹配时不区分大小写;

-regex PATTERN: 基于正则表达式进行文件名匹配;

根据属主查找:-user USERNAME

根据属组查找:-group

根据UID查找:-uid UID

根据GID查找:-gid GID

查找没有属主的文件:-nouser

查找没有属组的文件:-nogroup

按文件类型查找:-type f :普通文件

d:目录文件

l:符号链接文件

b:块设备文件

c:字符设备文件

p:管道文件

s:套接字文件

按文件大小查找:

-size [+|-] #UNIT

#UNIT:(#-1, #]

-#UNIT:[0,#-1]

+#UNIT:(#, oo)

常用UNIT:k ,M ,G

例:find /etc -size 10k,查找/etc下大于9k小于等于10k的文件 ;

find /etc -size -10k ,查找/etc下小于等于9k的文件 ;

find /etc -size +10k ,查找/etc下大于10k的文件。

组合条件:-a:且

-o:或

-not:非

!A -a !B =!(A -o B)

!A -o !B =!(A -a B)

根据文件的时间戳查找:

以“天”为单位,以 24 小时为一个单位。

6b3acef89d4c1208fd3c57ec88a4b5eb.png

图中最右边为目前的时间,越往左表示越早之前的时间轴;

3:表示3—4那一天的文件;

-3:表示小于等于3天内的文件;

+3:表示大于等于4天前的文件.

以“天”为单位:

-atime

-mtime

-ctime

以“分钟”为单位:

-amin

-mmin

-cmin

-newer file :file为一个存在的文件,列出比file还要新的文件名。

根据权限查找:

-perm[/|-] mode

mode:精确权限匹配

/mode: 任何一类用户(u,g,o,)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”的关系。

-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足,9位权限之间存在“与”关系。

(3)处理动作:对符合查找条件的文件做出的操作,例如删除、输出等操作;默认输出至标准输出。

-print:输出至标准输出;默认的动作;

-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;

-delete:删除查找到的文件;

-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;

-ok COMMAND {} \;   :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;

-exec COMMAND {} \;  :对查找到的每个文件执行由COMMAND表示的命令;

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;但是有些命令不能接受过长的参数,此时命令执行会失败;如下命令模式可规避此问题:

find | xargs COMMAND

四、练习操作

1、查找/var目录下属主为root,且属组为mail的所有文件或目录;

ace715edc363d27aa33d073ea1095ee3.png

2、查找/usr目录下不属于root, bin或hadoop的所有文件或目录;用两种方法;

b6bded0bd3c26221986bcd2d3a94e221.png

3、查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录;

42ea09addb5c6e3c53a43690982a89de.png

4、查找当前系统上没有属或属组,且最近一周内曾被访问过的文件或目录;

d90b205c2b7566011351c73ca082053c.png

5、查找/etc目录下大于1M且类型为普通文件的所有文件;

6ab64d13d38e0ff6d5dd76716aff1c7f.png

6、查找/etc目录下所有用户都没有写权限的文件;

45f3c3a2f9377bd5e0fa919542be9eb5.png

7、查找/etc目录至少有一类用户没有执行权限的文件;

~]#find /etc -not -perm -111 -type f -ls

cfb644f0169e2d64c1c3ce7702ce16ba.png

8、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件;

5a234c6b51cbb35effd0fb3fb6d5bf56.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值