• [Linux]Linux系统查找文件命令总结


    1. find

    find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

    find的使用格式如下:

      $ find <指定目录> <指定条件> <指定动作>

      - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

      - <指定条件>: 所要搜索的文件的特征。

      - <指定动作>: 对搜索结果进行特定的处理。

    如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

    find的使用实例:

      $ find . -name "my*"

    搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

      $ find . -name "my*" -ls

    搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

      $ find . -type f -mmin -10

    搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。


    2. locate

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

    locate命令的使用实例:


    locate例子:

    $ locate inittab
    /usr/lib/upstart/migrate-inittab.pl
    /usr/share/terminfo/a/ansi+inittabs

      $ locate /etc/sh

    搜索etc目录下所有以sh开头的文件。

      $ locate ~/m

    搜索用户主目录下,所有以m开头的文件。

      $ locate -i ~/m

    搜索用户主目录下,所有以m开头的文件,并且忽略大小写。


    3. whereis

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

    whereis命令的使用实例:

      $ whereis grep

    4.grep家族


    最好的方法也就是 grep -r 'keyword' * 来定位文件名 然后通过文件名查找位置
    RE--regular expression; g: global; p: print
    出了上面10种元字符集,grep还支持下面的RE
    w 字母或者数字
    W 非单词字符(标点符号)
    + 重复一个或者多个前面的字符
    | 或 love(a:b)表示lovea或者lobeb
    ?单个字符
    grep返回状态值($?) 0表示成功,1表示失败,2表示没有找到文件
    rgrep递归访问目录树
    ---------------------------------------------------------------------------
    ls -l |grep ^d 显示目录
    grep -n -v -# -A# -B#
    -i 不区分大小写
    -n 显示匹配行和行号
    -v只显示不匹配行
    -#显示匹配行上下#行
    -A#匹配行后面打印#行
    -B#匹配行前面打印#行
    -c 只输出匹配行的行数
    -h 查询多文件的时候不显示匹配的文件名字
    -l 查询多文件只显示匹配的文件名
    -s 不显示错误信息
    grep与正则表达式同用
    grep "^[^abc]" *.f 提取行首不是abc的行
    grep "[0-9]{3}[8]" *.f 提取类似xxx8的行,x表示任意数字
    grep "a{2}" *.f 显示a至少出现两次的行,注意grep是以行处理单位的
    grep -n "^$" file 列出空行的行号
    -E参数,可以使用"与"和"或"模式
    grep -E "abc | def" *.f 显示包含abc或者def的行
    ex:
    ls -l | grep "^$" 显示目录
    ls -l | grep "^d" 显示文件
    ls -l | grep "^d..x..x..x" 显示特定权限的目录
    ps aux | grep "httpd" |grep -v "grep"


    5. type

    type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。

    type命令的使用实例:

      $ type cd

    系统会提示,cd是shell的自带命令(build-in)。

      $ type grep

    系统会提示,grep是一个外部命令,并显示该命令的路径。

      $ type -p grep

    加上-p参数后,就相当于which命令。
    ————————————————
    版权声明:本文为CSDN博主「zhujinghao09」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zhujinghao_09/article/details/8481326

  • 相关阅读:
    二十六、oracle pl/sql 分页
    二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
    二十四、oracle pl/sql 变量
    python笔记之字典
    python笔记之元祖
    python笔记之列表
    python笔记之字符串
    python笔记之数据类型
    python笔记之python基础
    在windows系统电脑上同时安装python2.x和python3.x版本
  • 原文地址:https://www.cnblogs.com/Swetchine/p/11585210.html
Copyright © 2020-2023  润新知