linux搜索文件,Linux文件搜索命令 find

今天继续分享linux常用命令,搜索相关命令,首先来看第一个命令

一 find :搜索文件或目录

语法: find [搜索范围] [匹配条件]

1 find /etc -name init 在etc目录下搜索名字为init的文件或目录,如下:

2c01724a12eb3f322b9b4e534ea2a29b.png

我们看到了相应的搜索结果,但是这只是搜索确定名字的文件或目录,如果我想搜索文件名中包含init的怎么办呢,很简单,用*号即可

ed57ac14af62bf32e5102bb254650a58.png

*号代表任意字符,?代表单给字符,比如我们想搜索init后面跟着四个字符的文件或目录

0e730ed7906073d1f25fb157dc382b03.png

这里可以看到结果了,我们知道linux是严格区分大小写的,那么如果我想搜索INIT的文件,需要用-iname,-iname表示不区分大小写,比如我先创建一个INIT的文件,然后搜索它

edf9a6593a2db7b22ae4fb67640e892e.png

我们看到成功搜索到了。

2 find / -size +204800 在根目录下搜索大于100M的文件,+n代表大于,-n代表小于,=n代表等于

n的一位代表512个字节,也就是0.5k,100M就是102400k,换算成n就是204800了,如下:

345faa66f7029f7978b4ec0a2be45527.png

我们看搜索到了大于100M的文件

3 find /home -user fuqiang1 搜索home目录下所有者为fuqiang1的文件或目录

a1335aaad98517c16e1c2e88d23a5e55.png

find /home -group fuqiang1 搜索home目录下所属组为fuqiang1的文件或目录

f69ce1f1411cd142244a296710cf3234.png

4 find /etc -cmin -5 查找etc目录下5分钟之内被修改过属性的文件和目录

-amin 代表访问时间 -cmin代表文件属性 -mmin代表文件内容

c0513283fd5c89f899094b95c596b591.png

5 -type 根据文件类型查找,f代表普通文件,d代表目录,l代表软连接文件

1c15e4fec57cccd1c6b6c1dc2c369df2.png

6 -inum 根据i节点查找

d33d7ac76f1f31b1aa8430a71bd4047b.png

7 find /etc -size +163840 -a -size -204800

在etc下查找大于80M,小于100M的文件

-a代表两者同时满足

-o代表两个满足一个即可

8bee0a45234e3635c7a4f5e50167bd1c.png

8 find . -name fuqiang.list -exec ls -l {} \;

搜索当前目录下文件名为fuqiang.list的文件,然后直接ls -l命令列出详细信息

dc4da2f74d9e031887c9aaf3cb1dc73e.png

-exec/-ok 对执行结果进行操作,-exec直接操作,-ok会先询问

好了,find命令常用方法就介绍到这里,下面看第二个命令

二 locate:在文件资料库中查找文件

用法:locate inittab

1e1ef469c599dffd38f1c3f5eda20ee0.png

那么这个locate跟find有什么不同呢,locate是在文件资料库中查找,也就是不是真正在磁盘上查找,这样速度会快很多,那么这个文件资料库在哪里呢,我们执行locate locate看一下

ad0a34c74a554b0cd11278ef8361ba89.png

这里我们看到一个mlocate.db的文件,这个就是文件资料库,linux系统会定期把文件的资料同步到这里,下面看一个问题,比如我新建一个文件,然后locate这个文件,分两种情况,我先在tmp下建一个文件

15842b5408f49587f2a556b9a1b9d6c3.png

我们发现在tmp路径下的文件查不到,这是因为这个路径下的文件不会被放到文件资料库中,那么我在其他目录下建一个文件

6cdb0c2f71bc6a0d6cf9493ccb84a0f4.png

怎么依然locate不到呢,是因为新建的文件并不会立刻被同步到文件资料库中,那么我们执行updatedb,新建的文件就会同步进去了

bedb972e63a5877dd5455ed3f781b3e7.png

我们看到搜索结果了,如果不区分大小写呢,用-i

56db439ffd6c51b143fbf58ea695382c.png

好了,locate命令就介绍到这里,看下一个命令

三 which:搜索命令所在路径及别名信息

which 命令

5b2ba18e2a3cc91fee1af0fb7b2ee3dd.png

我这里没有看到别名信息,不知道是不是我linux发型版的问题

四 whereis:搜索命令所在路径及帮助文档

whereis 命令

4050ac0ba7a52c27221a01c66c6f0a94.png

前面是命令所在路径,后面是帮助文档

五 grep:在文件中搜寻字符匹配的行并输出

-i不区分大小写,-v排除指定字串

grep -i if rc.local 查找rc.local文件中包含if的行,如下

c06f844a933cf36151ab1881d10207c2.png

grep -v ^# rc.locat 排除rc.local文件中以#开头的行,如下:

e76941c1c59e8b23eee8ef92ac27c67a.png

好了,常用的linux文件搜索命令就总结到这里,自己动手写了一遍,如有问题,欢迎指正,谢谢。

0b1331709591d260c1c78e86d0c51c18.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值