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 01:00
下一篇 2016-11-28 10:29

相关推荐

  • vi编辑器

       vim编辑器是众多文件编辑软件中比较好的一个,也是使用最多 ,功能最强大的,提供了图形化界面。    Vi:类unix系统中默认的文本编辑器    Vim:vi编辑器的增强版本,习惯上也称vi。    作用:创建或修改文本文件,维护linux系统的各种配置文件 vim的使用…

    Linux干货 2016-08-15
  • 初探VIM_第六周练习(02)

    引言—什么是Vim? 接触Linux这么久,想必对于一切皆文件的哲学思想已经不陌生了。因此,学习并掌握用一款Linux文本编辑器,对于玩转LInux来说,是很有必要的。 vi编辑器是Unix系统最初的编辑器,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。 在GNU项目将vi编辑器移植到开源世界时,…

    Linux干货 2016-12-18
  • test

    test

    Linux干货 2017-02-14
  • 用户和权限管理

    一、用户 Linux中用户是资源获取的标识符,资源分配,文件系统安全权限模型的核心要素之一。密码则是用户认证的凭证,用户信息和密码信息都存放在相应的文本文件中,密码信息在存放的过程用了一定的加密算法进行加密。   1.加密算法: 资源分派:    Authentication:认证(确认身份,也有可能好几个人一个身份) &nbs…

    Linux干货 2016-08-05
  • 第二周作业新

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 pwd :显示当前所在路径   cd :切换目录   cd – :在上次目录与当前目录之间切换。   cd ~ :切换回自己的家目录   cd . :当前目录      cd .. :切换到…

    2017-02-18
  • 上篇博客简单提了一下Nginx配置文件的大体组成部分,这次来好好解释一下这些个配置文件。 一、main配置段 分类:    正常运行必备的配置    优化性能相关的配置    用于调试及定位问题相关的配置   …

    Linux干货 2016-10-26

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 23:21

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