Linux文件查找命令

 

Linux系统文件查找

    使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索。

locate命令:

    locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

命令用法:
        locate [OPTION]... PATTERN...
常用选项:
        -b, --basename         至匹配路径中的基名
        -c, --count            统计出共有多少个符合条件的文件
        -d, --database DBPATH  用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)
        -e, --existing         只显示当前存在的文件条目
        -L, --follow           当文件存在时跟随蔓延的符号链接 (默认)
        -h, --help             显示本帮助
        -i, --ignore-case      匹配模式时忽略大小写区别
        -l, --limit, -n LIMIT  限制为 LIMIT项目的输出 (或 计数) 
        -m, --mmap             忽略向后兼容性
        -P, --nofollow, -H     当检查文件时不跟随蔓延的符号链接
        -0, --null             输出时以 NUL 分隔项目
        -S, --statistics       不搜索项目,显示有关每个已用数据库的统计信息
        -q, --quiet            不报告关于读取数据库的错误消息
        -r, --regexp REGEXP    搜索基本正则表达式 REGEXP 来代替模式
            --regex            模式是扩展正则表达式
        -s, --stdio            忽略向后兼容性
        -V, --version          显示版本信息
        -w, --wholename        匹配完整路径名 (默认)

            注:索引构建过程需要遍历整个根文件系统,极消耗资源

find命令:

    Linux下find命令通过遍历指定起始路径下文件系统层级结构完成文件查找,查找速度略慢,但查找结果精确。

命令用法:
        find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
            查找起始路径:指定具体搜索目标起始路径,默认为当前目录
            查找条件:指定的查找标准,可以根据文件名、大小、类型、从属关系、权限等标准进行,默认为找出指定路径下的所有文件;
            处理动作:多符合查找条件的文件作出的操作,例如删除等操作,默认为输出至标准输出;

        查找条件:
            表达式:选项和测试

            测试:结果通常为布尔型(“true”“false”)
                根据文件名查找:
                    -name “pattern”
                    -iname “pattern”:不区分大小写
                        支持glob风格的通配符
                    -regex pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名
                    -user USERNAME:查找属主指定用户的所有文件
                    -group GRPNAME:查找属组指定组的所有文件
                    -uid UID:查找属主指定的UID的所有文件
                    -gid GIU:查找属组指定的GID的所有文件
                    -nouser:查找没有属主的文件
                    -nogroup:查找没有属组的文件

                根据文件的类型查找:
                    -type TYPE:
                        f:普通文件    
                        d:目录文件
                        l:符号链接文件
                        b:块设备文件
                        c:字符设备文件
                        p:管道文件    
                        s:套接字文件

                组合测试:
                    与:-a,默认组合逻辑
                    或:-o,
                    非:-not,!

                根据文件的大小查找:
                    -size [+|-] #UNIT    
                        常用单位:K,M,G

                根据时间戳查找:
                    以“天”为单位:
                        -atime [+|-]#
                        -mtime
                        -ctime
                    以“分钟”为单位:
                        -amin        
                        -mmin                        
                        -cmin

                根据权限查找:
                    -perm [/|-]mode
                        mode:精确权限匹配
                        /mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系
                        -mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;9位权限之间存在“与”关系

        处理动作:
            -print:输出至标准输出,默认动作
            -ls:类似于对查找到的文件执行“ls -l”命令,输出文件的形象信息
            -delete:删除查找到的文件
            -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中
            -ok COMMAND {} \;:对查找到的每个文件执行由COMMAND表示的命令,每次操作都由用户进行确认
            -exec COMMAND {} \; :对查找到的每个文件执行由COMMADN表示的命令

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

whereis命令:

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

命令用法:
        whereis [-bmsu] [BMS 目录名 -f ] 文件名
常用选项:
        -b   定位可执行文件。
        -m   定位帮助文件。
        -s   定位源代码文件。
        -u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
        -B   指定搜索可执行文件的路径。
        -M   指定搜索帮助文件的路径。
        -S   指定搜索源代码文件的路径。

type命令:

    type 命令被用于判断另外一个命令是否是内置命令

命令用法:
        type [选项] [参数]
常用选项:
        -a 显示一个名字的所有可能
        -t 判断一个名字当前是否是alias、keyword、function、builtin、file
        -p 查看一个外部命令的执行路径
        -P 查看内部命令路径

        alias 别名
        keyword 关键字,Shell保留字
        function 函数,Shell函数
        builtin 内建命令,Shell内建命令
        file 文件,磁盘文件,外部命令
        unfound 没有找到

which命令:

    which命令的作用是在PATH变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果。也就是说使用which命令就可以看到某个系统命令是否存在以及执行的到底是哪一个位置的命令。

命令用法:
        which [options] [--] programname [...]
常用选项:
        -a   查找全部内容,而非第一个文件
        -n   <文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 
        -p   <文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。 
        -w  指定输出时栏位的宽度。 
        -V  显示版本信息。

原创文章,作者:641348038@qq.com,如若转载,请注明出处:http://www.178linux.com/61164

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-11-28
下一篇 2016-11-28

相关推荐

  • 磁盘管理

    一、知识整理 1、每个扇区:512字节;每个柱面:256个磁头*63个扇区*512字节,大概为8M。centos6中分区使用起始结束柱面;centos7中分区使用起始结束扇区。EBR:扩展分区的第一个扇区。 2、MBR:master root record,1982年,使用32位表示扇区数,分区不超过2T。其中,一共512bytes字节,446bytes为b…

    Linux干货 2016-08-29
  • ​Linux基础知识之文件权限

    实验环境:    Linux系统版本为CentOS6.8_x86_64版本,以root用户和sjsir用户远程用xshell连接系统,进行试验。 文本目录:    1.文件的属性    2.文件权限相关的命令    3.umask 新建文件和目录的默认权限   &nbs…

    Linux干货 2016-08-05
  • 机器学习排序

     从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。        第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。        第二代技术,利用互联网的超文本结构,有效…

    Linux干货 2015-12-15
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  ~]# who |sort -nu root     pts/0        2016-08-…

    Linux干货 2016-08-29
  • nginx+keepalived构建负载均衡代理服务器

    实验环境: 1、centos7.3 centos6.82、两台VS提供nginx代理和keepalived3、两台RS提供httpd服务并部署wordpress4、另外一台提供Mysql数据库服务 实验拓扑图: 拓扑图 实验步骤 1、在vs1(172.18.251.4)上配置,用yum安装keepalived和nginx yum install -y kee…

    Linux干货 2017-05-21
  • 文件的查找与压缩归档

    文件的查找与压缩归档 locate find 压缩与归档 locate 主要用途 查询系统上预建的文件索引数据库 locate – find files by namelocate [OPTION]… PATTERN… locate查询文件时,会去搜索/var/lib/mlocat…

    Linux干货 2016-08-21

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 23:21

    知识点总结的非常不错,如果再配一些示例会更好,这样既能验证你的掌握程度,又能加深印象。