Linux命令很枯燥怎么办,Linux下的枯燥命令-find

引言: 想查哪就查哪,蒙多

1. 作用

根据条件查找某个路径下符合规则的文件、文件夹信息

2. 基础格式

基础语法格式:

find [路径] [选项] [操作]

3. 常用选项

选项

含义

-name

根据文件名查找

-perm

根据文件权限查找

-prune

该选项可以排除某些查找目录

-user

根据文件属主查找

-group

根据文件属组查找

-mtime -n | +n

根据文件更改时间查找

-nogroup

查找无有效属组的文件

-nouser

查找无有效属主的文件

-newer file1 !file2

查找更改时间比file1新但是比file2旧的文件

-type

按照文件类型查找

-size -n | +n

按文件大小查找

-mindepth n

从n级子目录开始搜索

-maxdepth n

最多搜索到n级子目录

4. 场景实操

注:以下场景均以 /tmp 文件夹为示例,实际使用过程中,请替换成要搜索的路径

4.1 根据文件名查找文件(常用)

#查找 /tmp 目录下以abc开头的文件

find /tmp -name 'abc*'

#查找 /tmp 目录下所有的json文件

find /tmp -name '*.json'

#当不填写路径时,默认当前路径,等同于 find .

find -name 'abc*'

#使用 -iname忽略大小写匹配

find /tmp -iname 'abc*'

复制代码

4.2 根据文件归属查找文件

#查找/tmp目录下,属主为root的文件

find /tmp -user root

#查找/tmp目录下,属组为root的文件

find /tmp -group root

复制代码

4.3 根据文件类型查找文件

-type 可用值有如下选项:

f 文件

d 目录

c 字符设备文件

b 块设备文件

l 链接文件

p 管道文件

#查找/tmp目录下,名字中带有abc的文件

find /tmp -name '*abc*' -type f

#查找/tmp目录下,名字中带有abc的文件夹

find /tmp -name '*abc*' -type d

复制代码

4.4 根据文件大小查找文件

-size 可用值有如下选项:

+n 大小大于n的文件

-n 大小小于n的文件

n大小等于n的文件(部分发行版匹配不到,不推荐使用)

#查找/tmp目录下小于200字节的文件

find /tmp -size -200c

#查找/tmp目录下大于1M的文件

find /tmp -size +1M

复制代码

可选的单位选项:

b 块,1b=512字节

c 字节 1c=1字节

w 2字节 1w=2字节

k 千字节 1k=1024字节

M 兆字节 1M=1024*1024字节

G 1G=102410241024 字节

4.5 根据修改时间查找文件

-mtime 可用值有如下选项:

-n n天以内修改的文件

+n n天以外修改的文件

n 正好n填修改的文件

-mmin 可用值有如下选项:

-n n分钟以内修改的文件

+n n分钟以外修改的文件

#查找/tmp目录下30天之前修改名称包含abc的文件

find /tmp -name '*abc*' -mtime +30 -type f

#查找/tmp目录下3分钟内修改的文件

find /tmp -mmin -3 -type f

复制代码

4.6 过滤查找目录层级

#从/tmp的第2级子目录开始搜索,名称中包含abc的文件

find /tmp -mindepth 2 -name '*abc*'

#搜索/tmp中名称中包含abc的文件,最多搜索到3级目录

find /tmp -maxdepth 3 -name '*abc*'

复制代码目录层级过滤条件要放到最前面,这样匹配之前就过滤掉了不需要匹配的目录,效率最高

4.7 查找无归属的文件

#查找/tmp下无属主的文件

find /tmp -nouser

#查找/tmp下无属组的文件

find /tmp -nogroup

复制代码

4.8 根据权限查找文件

#查找所有拥有最高权限的文件,排查风险

find /tmp -perm 777

复制代码

4.9 过滤某些特定文件夹

#查找/tmp下名称中包含abc的文件,排除掉/tmp/ddd文件夹下的文件

find /tmp -path /tmp/ddd -prune -o -name '*abc*'

复制代码

4.10 根据新旧关系过滤文件

#查找/tmp下名称中包含abc,而且修改时间大于file1的文件

find /tmp -newer file1 -name '*abc*'

#查找/tmp下名称中包含abc,而且修改时间大于file1,小于file2的文件

find /tmp -newer file1 !file2 -name '*abc*'

复制代码

4.11 查找到文件后进行操作

-print 默认选项,将查找到的内容打印出来,可不加

-exec 对查找到的文件,进行特定的操作,命令格式为 -exec 'command' {} ;

-ok 和exec 功能类似,但是涉及到提示的地方,会给用户相关提示

使用示例:

#删除/tmp目录下,名称中包含abc的所有文件

find /tmp -name '*abc*' -type f -exec rm -rf {} \;

#将/tmp目录下,名称中包含abc的所有文件复制到 /tmp1目录下

find /tmp -name '*abc*' -type f -exec cp {} /tmp1 \;

#将/tmp目录下,以.log结尾的,更改时间在7天以上的文件,全部删除

find /tmp -name '*.log' -mtime +7 -exec rm -rf {} \;

复制代码

4.12 多个条件之间的逻辑运算符

-a 与,添加多个条件时,默认就是与关系,可以省略不加

-o 或

-not | ! 非

#查找/tmp目录中,所有属主不是root的文件

find /tmp -not -user root

#查找/tmp目录中,文件名中包含abc或者大小大于1M的文件

find /tmp -type f -a \( -name '*abc*' -o -size +1M \)

复制代码

5. 相似命令对比

5.1 locate

作用:文件查找

与find命令的差异:

find命令扫描磁盘,locate从数据库文件中进行查找

find默认精准匹配,locate默认模糊匹配

locate数据库文件,一般每天生成一次,不能实时查询到最新数据,可通过updatedb手动触发数据库文件更新

5.2 whereis

作用:查找某个可执行二进制文件、帮助文档、源代码文件等

常用参数:

不加参数,返回二进制文件、帮助文档文件、源代码文件

-b 只返回二进制文件

-m 只返回帮助文档文件

-s 只返回源代码文件

5.3 which

作用: 查找可执行二进制文件,等同于 whereis -b

5.4 各查找命令的适用场景

命令

适用场景

优缺点

find

查找某一类文件

功能强大,需要扫描磁盘,速度慢

locate

只可以查找单个文件

功能单一,从系统数据库查询,速度快

whereis

查找程序的可执行文件、帮助文档等

查找帮助文档、源代码用

which

只可以查找程序的可执行文件

用于查找可执行命令的绝对路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的源代码和引用的内容来看,[GWCTF 2019]枯燥的抽奖 1是一道PHP伪随机数的题目。该题目中使用了mt_rand()函数生成伪随机数,并通过种子来控制生成的序列。通过审计代码,我们可以看到check.php是存在的,并且在其中进行了抽奖的逻辑判断。如果用户输入的num与生成的随机数str相等,则会显示抽奖成功的提示信息,否则会显示抽奖失败的提示信息。为了解决这道题目,可以使用提供的Python脚本来转换伪随机数生成的序列,从而得到正确的种子。具体的转换过程可以参考脚本中的代码实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [[GWCTF 2019]枯燥的抽奖1](https://blog.csdn.net/qq_63940076/article/details/128634284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [[GWCTF 2019]枯燥的抽奖 1](https://blog.csdn.net/qq_50454266/article/details/115407565)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值