zoukankan      html  css  js  c++  java
  • linux find grep 查找命令

    原文:fhqdddddd.blog.163.com/blog/static/186991542012417105729415/

    find

    1.作用

    find命令的作用是在目录中搜索文件,它的使用权限是所有用户。

    2.格式

    find [path][options][expression]

    path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。

    3.主要参数

    [options]参数:

    -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。

    -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。

    -mindepth levels:表示至少查找到开始目录的第level层子目录。

    -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。

    -version:打印版本。

    [expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。

    —name:支持统配符*和?。

    -atime n:搜索在过去n天读取过的文件。

    -ctime n:搜索在过去n天修改过的文件。

    -group grpoupname:搜索所有组为grpoupname的文件。

    -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。

    -size n:搜索文件大小是n个block的文件。

    -print:输出搜索结果,并且打印。

    4.应用技巧

    find命令查找文件的几种方法:

    (1)根据文件名查找

    例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:

    find / -name lilo.conf

    find命令后的“/”表示搜索整个硬盘。

    (2)快速查找文件

    根 据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在 很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀 “.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:

    find /etc -name smb.conf

    这样,使用“快速查找文件”方式可以缩短时间。

    (3)根据部分文件名查找方法

    有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:

    find / -name ''*abvd*''

      输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。

    (4) 使用混合查找方式查找文件

      find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。

    find /etc -size +500000c -and -mtime +1

    find命令的作用是在目录中根据文件名搜索文件

    find 列出当前目录及其子目录的所有文件和文件夹的完整路径。

    find -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件

    find . -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件(同上)。

    find / -name Help.java 在整个硬盘中搜索文件名为Help.java的文件。

    find -perm 755 在当前目录及其子目录中查找指定权限的文件

    find -type b 在当前目录及其子目录下查找块设备文件。

    find -type d 在当前目录及其子目录下查文件夹。

    find -type c 在当前目录及其子目录下查找字符设备文件。

    find -type p 在当前目录及其子目录下查找管道文件。

    find -type l 在当前目录及其子目录下查找符号链接文件。

    find -type f 在当前目录及其子目录下查找普通文件。

    find -type d -exec ls -l {} ; 查找当前目录及其子目录下的文件夹,并将查找结果以ls -l的方式展现。

    find -type d -ok rm -rf {} ;查找当前目录及其子目录下的文件夹,并将查找结果依次执行rm -rf命令,但是在执行命令前会有确认提示

    grep

    1.作用

    grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

    2.格式

    grep [options]

    3.主要参数

    [options]主要参数:

    -c:只输出匹配行的计数。

    -I:不区分大小写(只适用于单字符)


    -h:查询多文件时不显示文件名。

    -l:查询多文件时只输出包含匹配字符的文件名。

    -n:显示匹配行及行号。

    -s:不显示不存在或无匹配文本的错误信息。

    -v:显示不包含匹配文本的所有行。

    pattern正则表达式主要参数:

    :忽略正则表达式中特殊字符的原有含义。

    ^:匹配正则表达式的开始行。

    $: 匹配正则表达式的结束行。

    <:从匹配正则表达式的行开始。

    >:到匹配正则表达式的行结束。

    [ ]:单个字符,如[A]即A符合要求 。

    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

    。:所有的单个字符。

    * :有字符,长度可以为0。

    正 则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可 以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS 中用户可以使用通配符 “*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。

    4.应用实例

    查 询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看 nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3 }.[0-0{3}。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。

    $grep ''[0-9 ]{3 }.[0-0{3}'' ipfile

    补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式

    grep命令的作用是在目录中根据文件内容搜索文件

    grep Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,不查找子目录

    grep -r Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,查找子目录

    grep -nr Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,查找子目录,并显示行号

    在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak, 然后执行grep命令看看在这些文件中是否存在一个sam用户。
    # find /etc -name "passwd*" -exec grep "sam" { } ;
    sam:x:501:501::/usr/sam:/bin/bash
  • 相关阅读:
    HDU 1025 Constructing Roads In JGShining's Kingdom (DP+二分)
    HDU 1158 Employment Planning
    HDU 2059 龟兔赛跑
    Csharp 简单操作Word模板文件
    Csharp windowform datagridview Clipboard TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據
    Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode
    Csharp windowform controls clear
    CSS DIV大图片右上角叠加小图片
    Csharp DataGridView自定义添加DateTimePicker控件日期列
    Csharp 打印Word文件默認打印機或選擇打印機設置代碼
  • 原文地址:https://www.cnblogs.com/cj2014/p/4010905.html
Copyright © 2011-2022 走看看