14.linux 文件搜索命令——which,whereis,locate,find深入

1 which 查找可执行的文件:

使用whic命令即可查看某个命令是否存在,以及可执行的到底是哪个位置的命令。

搜索命令所在路径及别名。

[root@wangweicentos ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

2 whereis 查看文件的位置:

whereis命令只能用于搜索程序名,而且只能搜索二进制文件(选项 -b),man说明文件

(选项-m),源代码文件(-s)。如果省略参数,则返回所有信息。

搜索命令所在的路径以及帮助文档所在的位置。

选项:-b:只查找可执行文件 

           -m:只查找帮助文件

[root@wangweicentos ~]# whereis pwd
pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@wangweicentos ~]# whereis -b pwd
pwd: /usr/bin/pwd
[root@wangweicentos ~]# whereis -m pwd
pwd: /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz

3 locate

locate依赖于事先构建好的索引库:手动更新数据库(updatedb)

工作特性:查找速度快,模糊查找,非实时查找。

选项:-b:只匹配路径中的基名

           -c:统计出共有多少个符合条件的文件

            -r:BRE

4 find

实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找。

工作特性:查找速度慢,精确查找,实时查找。

用法:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

一:查找条件:

1.按文件名查找:-name

                            -iname

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

-regex:基于正则表达式模式查找文件,匹配的是整个路径,而非其名;

二:根据文件从属关系查找:

-user:查找属主指定用户的文件;

-group:查找属组指定组的所有文件;

-uid:查找属主指定的UID的所有文件;

-gid:查找属组指定的GID的所有文件;

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

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

三:根据文件的类型查找:

-type:f :普通文件

           d:目录文件        l:符号链接文件

          b:块设备文件        c:字符设备文件        p:管道文件        s:套接字文件

组合测试:与:-a         或:-o        非:-not,!

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

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

四:按文件大小查找:

-size [+|-] #UNIT        常用单位:K  M  G

五:根据时间戳查找:

以“天”为单位:-atime        -mtime        -ctime        

以“分钟”为单位:-amin        -mmin        -cmin

注意:通常情况下:

最近时间内其内容被修改过 -mtime

最近时间内被访问过的 -atime

六:根据权限查找:

-perm [\ | -]mode        mode:精确权限匹配;

/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;

              9位权限存在“或”关系

-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;

                9位权限存在“与关系”

经典案例:

七:目录层级:

-depth:在查找文件时,首先查找当前目录中的文件,然后再在子目录中查找。

              -maxdepth levels 在某个层次目录中按照递减方法查找

              -mindepth levels  在某个层次目录中按照递减方法查找

八:处理动作:

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

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

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

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

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

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

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

find | xargs COMMAND

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值