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

相关推荐

  • 软件包管理

    rpm 与 yum 的用法 源代码:name-VERSION.tar.gz|bz2|xz VERSION: major.minor.release rpm包命名方式: name-VERSION-release.arch.rpm 例:bash-4.2.46-19.el7.x86_64.rpm VERSION: major.minor.release rele…

    Linux干货 2016-09-01
  • N25-第1周博客作业

    计算机概述及命令 一、计算机原理及其组成功能 计算机作为一个整体,由软件和硬件两大部分组成:  (1)计算机硬件系统。        计算机的硬件系统结构有哈佛结构和冯·诺伊曼结构两种。 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内…

    Linux干货 2016-12-03
  • 重定向

    Linux下定义了三种I/O设备: 标准输入(STDIN):用0表示,默认的标准输入设备是键盘; 标准输出(STDOUT):用1表示,默认的标准输出设备是当前终端; 标准错误(STDERR):用2表示,默认的标准错误输出设备是当前终端; I/O重定向即改变默认的位置 1 标准输出重定向 (1)将标准输出重定向到其他终端 /dev/pts/1代表伪终端1,在伪…

    Linux干货 2017-07-31
  • 公钥和私钥的原理

          今天上课老师讲到公钥和秘钥,模模糊糊听了个大概,始终还是不能够详细的理解公钥怎么会事?私钥怎么会事?工作原理是怎么的?今天在网上找了半天,通过查看大家对这个密钥对的理解,总算弄清楚了,咱就把我的心得写出来给大家对密钥对有疑问的同志们看看。      公钥和私钥就是俗称…

    Linux干货 2016-11-30
  • UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。 3) 类的属性…

    Linux干货 2015-04-07
  • LVM 逻辑卷管理器-增大LV容量

    LVM 逻辑卷管理器-增大LV的容量   步骤: (1)新增一个8e systemID的分区; (2)用pvcreate命令构建PV; (3)用vgextend命令将PV加入vg_1; (4)用lvresize命令将新加入的PV内的PE加入lv_1中; (5)通过resize2fs命令将LV的容量扩充到整个文件系统;   (1)新增一个8…

    Linux干货 2016-09-19

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 23:21

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