linux搜索文件为1kb,Linux-文件的查询(下)

今天介绍两个文件查询相关的命令:locate、find。

locate

locate是一个利用数据库来查询文件,查询速度非常快的命令。

也正因为locate查询时是通过数据库,所以有时会找到已经被删掉的文件,而且也找不到刚创建的文件:

75adb30358b6cc1ed7ffc5f328c6c4a9.png

locate1.png-44.5kB

locate是通过/var/lib/mlocate来寻找数据的,这个数据库文件默认每天更新一次(不同distribution可能不同),也可以通过updatedb命令手动进行更新。更新时会依据/etc/updatedb.conf文件中的配置来进行更新。因此想要查看硬盘中最新的文件情况,可以在执行locate前先执行一次updatedb命令:

684a1ba0b9a16e94072e4fecc4250254.png

locate2.png-24.2kB

locate命令在查询时,所有在完整文件名(包括路径名称)中含有查询参数的文件都会被查询出来。此外还可以通过-i来忽略大小写的差异,通过-r来接收正则表达式的显示方式:

6aec97ea93691ad05cbc20bb6c7f30cf.png

locate3.png-66.1kB

find

find是Linux下最强大灵活,可用参数也最多的一个查询命令。需要注意的是,find命令会直接去硬盘中查询,因此时间一般会比较长,使用中可通过限制查询路径来缩小范围进而节省时间。

find命令的使用格式是:find [PATH] [option] [action]。接下来分几个方面来对find命令的参数进行介绍。

1.与时间有关的参数

与时间有关的参数有:-atime(访问时间)、-ctime(创建时间)和-mtime(修改时间),下面以-mtime说明:

-mtime n:n为数字,意义是列出在n天之前的“24小时内”更改过的文件

-mtime +n:列出在n天之前(不含n天本身)被更改过的文件

-mtime -n:列出在n天之内(含n天本身)被更改过的文件

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

用图片来表示fine时间参数的意义如下:

2b31aa20eb5660910dd6820c8e745c16.png

find-time.png-7kB

例如查询/root/test目录下,修改时间在24小时内的文件:

e104674e67cca75b79ee5db0c0cbca92.png

find1.png-30.9kB

2.与用户或用户组有关的参数

-uid UID:查找uid为UID的文件

-gid GID:查找gid为GID的文件

-user user-name:查找所有者为user-name的文件

-group group-name:查找所属组为group-name的文件

-nouser:查找所有者不存在于/etc/passwd的文件

-nogroup:查找所属组不存在于/etc/group的文件

例如查询/root/test目录下用户为lrp的文件:

c556a4f35d0e982a6e74d1a58f0e541f.png

find2.png-16.3kB

3.与文件权限、文件名和文件大小有关的参数

-name filename:查找文件名为filename的文件,filename可使用通配符

-size [+-SIZE]:查找比size大(+)或小(-)的文件,可使用c(byte)、k(KB)、M(MB)、G(GB)作为单位

-type TYPE:根据类型查找文件,可使用f(一般文件)、b/c(设备文件)、d(目录)、l(连接文件)、s(socket)、p(FIFO文件)

-perm mode:查找权限刚好等于mode的文件,mode为权限的数字表示法,例如4755、755

-perm -mode:查找权限必须全部包括mode的文件,例如当mode为0744时,4755的文件也会被查询出

-perm /mode:查找权限包含任一mode的文件,例如当mode为755时,600也会被查询出

查找/root下含有特殊权限s 或 t的文件:

dba1cfba9527a0130d934e92d5589b44.png

find3.png-17.4kB

查找/root/视频/kali下大小超过800M的文件:

7d88d81992cf6a6e3717d125f7657e8c.png

find4.png-27.8kB

查找/root下文件名含有lrp的文件:

890579a30cb9d4b8b58995e9ca2aaea2.png

find5.png-33.1kB

4.-exec参数

-exec参数的用法为:

-exec command:command为其他命令,-exec后可接其他的命令来处理查找到的结果

例如find /root -perm /7000 -exec echo {} > /root/find-rst.txt \;,表示查找/root下含有特殊权限的文件,并把结果输出到/root/find-rst.txt文件中(-exec和 ;中间的是结果处理命令,{}代表查找结果):

fb6aba3ff2d99e05880e119075b7cd8a.png

find6.png-14.9kB

END

参考资料:《鸟哥的Linux私房菜》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值