zoukankan      html  css  js  c++  java
  • linux下常用的五个查找命令

     1、grep
    grep(General Regular Expression Parser,通用规则表达式分析程序)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
    它的使用语法为:
    grep [选项] pattern [文件名]
    . 匹配任意一个字符
    * 匹配0 个或多个*前的字符
    ^ 匹配行开头
    $ 匹配行结尾
    [] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,
    例如[a-z]表示字母a 至z 中的任意一个
    转意字符
    命令中的选项为:
    -b 显示块号
    -c 仅显示各指定文件中包含模式的总行数
    -i 模式中字母不区分大小写
    -h 不将包含模式的文件名显示在该行上
    -l 仅显示包含模式的文件名
    -n 显示模式所在行的行号
    -s 指定文件若不存在或不可读,不提示错误信息
    -v 显示所有不包含模式的行
    其中,pattern为所要匹配的字符串。如在/etc/passwd文件下查找包含“carey”字符的行:
    $ grep carey /etc/passwd
    要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。
    $ grep 'test' d*
    显示所有以d开头的文件中包含test的行。
    $ ls -l | grep '^public'
    通过管道过滤ls -l输出的内容,只显示以public开头的行。
    后面的^字符强制grep命令只在每行的开头找public。整个搜索模式(pattern)用单引号括起来,使shell不理会它们。shell只将单引号去掉,将搜索模式送给grep命令。
    $ grep -i 'hello world' menu.h main.c
    显示在menu.h和main.c文件中匹配“hello world”的行,忽略大小写。
    例如:
    grep 'sample' -R *


    2、find
    find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
    find的使用格式如下:
    find <指定目录> <指定条件> <指定动作>
    - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
    - <指定条件>: 所要搜索的文件的特征。
    - <指定动作>: 对搜索结果进行特定的处理。
    如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
    find的使用实例:
    $ find . -name 'my*' –ls
    搜索当前目录(含子目录,下同)中所有文件名以my开头的文件,并显示它们的详细信息。
    $ find /home -user rtos    
    搜索/home下拥有者为rtos的文件
    $ find . -type f -mmin -10
    搜索当前目录中,在过去10分钟中更新过的所有的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
    $ find / -type f -size +100M
    查找系统中所有大于100M的文件
    说明: 如果你要寻找一个档案的话,那么使用 find 会是一个不错的主意。不过,由于 find 在寻找数据的时候相当的耗硬盘,所以没事情不要使用 find 啦!有更棒的指令可以取代呦,那就是 whereis 与 locate 咯~


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


    4、whereis
    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
    whereis命令的使用实例:
    $ whereis grep
    grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz


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

  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/tyk3201/p/12261937.html
Copyright © 2011-2022 走看看