find命令

常用命令汇总:
查找空链接文件
find / -type l -follow
查找时避开某个目录
find / -path “/proc” -prune -o -type f

find 的逻辑
exp1 -o exp2
先对exp1表达式求值,若为true则不会对exp2求值了。

是时候把find命令给单独提取出来写一篇文章了,但实际上,本篇文章就是翻译。。。
在对系统安全检查的时候经常时候find命令,来搜寻符合某些条件的文件或目录或者设备。
基础用法:
find -name *.log
find -perm 777
像这种的基础用法之所以行得通,是因为find对你没有指定的选项用了默认的配置

官方文档如下:
http://www.manpagez.com/man/1/find/
Sysnopsis
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
一下为准则:
1、-H,-L, -P选项用来控制如何对待符号链接,比如说一个软连接文件,我到底跟过去还是不跟过去就由这哥三决定。
2、-D 略
3、-Olevel 略
4、如果不指定path,那么默认搜索当前目录。
如果表达式没有给出,那么默认使用-print
下面重点讲下expression, expression部分用来描述我们怎么匹配文件,当我们匹配到文件后我们对文件做哪些操作。表达式由序列组成,可分为如下几部分
Tests: tests返回一个真假值。真,文件符合要求,假,文件不符合要求。
例如-empty,当文件是空的时候,-empty 就是true
find / -empty -print
Actions 决定了做哪些操作
例如-print就是把文件名打印到标准输出
Global options,作用于所有的tests和actions,全局选项永远返回真。
例如-depth选项指定深度优先。
Positional options,局部选项只作用于它之后的test或者action
Operators:操作符,-o逻辑或,-a逻辑与,默认-a
例如find / -perm 777 -name test.py等价于find / perm 777 -a -name test.py

通过阅读manpage发现,人家find工具写得太好了,而且用饭也简单,有规律,但以前就是没有好好读过官方的使用手册,导致许多操作不理解。
牢记test,action,global options,positonal options, operator。

常用的tests有
-name 文件名
-iname Like -name,但是大小写不敏感
-perm mode权限模式,
比如说我们做安全检查的时候,系统中不应该存在权限过大的文件,怎么保证这一点呢,使用find查一查大于某个权限的文件。find -perm +444
-perm -mode
-perm +mode
-perm /mode
-type 文件类型
-fstype 文件系统类型
-nouser 没有用户的文件

常用actions
-delete 删除文件

-print

OPERATORS
(expr) 因为命令行不能直接使用()所以要加转移符
! (expr)
expr1 -a expr2
expr1 -o expr2

2>/dev/null把标准错误重定向到黑洞中
2>&1把标准错误重定向到标准输出

转载于:https://www.cnblogs.com/lineuman/p/6775994.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值