• Linux下AWK、SED、GREP、FIND命令详解


    AWK

    AWK是一个优良的文本处理工具,Linux和Unix环境中现有的功能最强大的数据处理引擎之一。

    • 语法
    awk [选项参数] 'script' var=value file(s)
    或
    awk [选项参数] -f scriptfile var=value file(s)
    
    • 调用方式
      • awk 命令行
        你可以象使用普通UNIX 命令一样使用awk,在命令行中你也可以使用awk 程序设计语言,,这种方法一般只用于解决简单的问题。当然,你也可以在shell script 程序中引用awk 命令行甚至awk 程序脚本。

      • 使用-f 选项调用awk 程序
        awk 允许将一段awk 程序写入一个文本文件,然后在awk 命令行中用-f 选项调用并执行这段程序。

      • 利用命令解释器调用awk 程序
        利用UNIX 支持的命令解释器功能,我们可以将一段awk 程序写入文本文件,然后在它的第一行加上#!/bin/awk –f。

    • 参数相关
    FILENAME:awk浏览的文件名
    FNR:awk浏览的文件的记录数
    FS:设置输入域的分隔符
    NF:浏览域的个数
    NR:已读的记录数
    OFS:输出域分隔符
    ORS:输出记录分隔符
    RS:控制记录分隔符
    $0:指整条记录
    $1:第一个作用域及第一列
    ~:匹配,与==相比不是精确比较
    !~:不匹配,不精确比较
    ==:等于,必须全部相等,精确比较
    !=:不等于,精确比较
    &&:逻辑与
    ||:逻辑或
    +:匹配时表示1个或1个以上
    /[0-9][0-9]+/:两个或两个以上数字
    /[0-9][0-9]*/:一个或一个以上数字
    
    • 案例
    过滤/etc/passwd文件,以冒号为分隔符,过滤出第一列
    awk -F ':' '{print $1}' /etc/passwd
    
    统计/etc/passwd文件中,一共有多少个用户
    awk '{count++;print $0;} END {print "user count is:",count} ' /etc/passwd
    
    统计/etc/passwd文件,打印出文件名,已读的记录数,以冒号为分隔符,每行浏览域的个数,每行记录的内容
    awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF, ",linecontent:" $0}' /etc/passwd
    
    统计/etc/passwd文件,从0开始,依次往下浏览,一直到最后并打印出循环了多少次
    awk 'BEGIN {count=0;print "start use count is:",count} {count++;print $0;} END {print "user count is:",count} '  /etc/passwd
    
    统计当前目录下,所有文件总大小,并输出到all file siz is
    ll |awk 'BEGIN {size=0} {size=size+$5} END {print "all file size is:",size}'
    
    统计当前目录下,除去4096大小的文件外,所有文件大小的总和,输出到all file siz is
    ll |awk 'BEGIN {size=0} {if ($5 !=4096) size=size+$5} END {print "all file size is:",size}'
    
    统计/etc/passwd文件,在每行行首从0开始记录浏览行数
    awk -F ':' 'BEGIN {null=0} {name[null]=$1;null++} END {for(i=0;i<NR;i++) print i,name[i]}' /etc/passwd
    
    统计netstat -anp 状态为LISTEN和CONNECT的连接数量分别是多少
    netstat -anp|awk '$6~/LISTEN|CONNECTED/{sum[$6]++} END{for (i in sum) printf "%-10s %-6s %-3s 
    ", i," ",sum[i]}'
    
    计算/home目录下,普通文件的大小,使用KB作为单位
    ls -l|awk 'BEGIN{sum=0} !/^d/{sum+=$5} END{print "total size is:",sum/1024,"KB"}'
    ls -l|awk 'BEGIN{sum=0} !/^d/{sum+=$5} END{print "total size is:",int(sum/1024),"KB"}'         //int是取整的意思
    
    统计/home目录下不同用户的普通文件的总数是多少?
    ls -l|awk 'NR!=1 && !/^d/{sum[$3]++} END{for (i in sum) printf "%-6s %-5s %-3s 
    ",i," ",sum[i]}'   
    mysql        199 
    root           374 
    
    统计/home目录下不同用户的普通文件的大小总size是多少?
    ls -l|awk 'NR!=1 && !/^d/{sum[$3]+=$5} END{for (i in sum) printf "%-6s %-5s %-3s %-2s 
    ",i," ",sum[i]/1024/1024,"MB"}'
    
    SED

    SED即Stream Editor文本流编辑,是一个“非交互式”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

    • 语法
    sed [options] 'command' file(s)
    或者
    sed [options] -f scriptfile file(s)
    
    • 选项
     -e :直接在命令行模式上进行sed动作编辑,此为默认选项;
     -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;
     -i :直接修改文件内容;
     -n :只打印模式匹配的行;
     -r :支持扩展表达式;
     -h或--help:显示帮助;
     -V或--version:显示版本信息;
     -a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行);
     -c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行;
     -d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
     -i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
     -p ∶列印,亦即将某个选择的资料印出;通常 p 会与参数 sed -n 一起运作;
     -s ∶取代,可以直接进行取代的工作哩;通常这个 s 的动作可以搭配正规表示法;
    
    • 常用命令
    a\ 在当前行下面插入文本。
    i\ 在当前行上面插入文本。
    c\ 把选定的行改为新的文本。
    d 删除,删除选择的行。
    D 删除模板块的第一行。
    s 替换指定字符
    h 拷贝模板块的内容到内存中的缓冲区。
    H 追加模板块的内容到内存中的缓冲区。
    g 获得内存缓冲区的内容,并替代当前模板块中的文本。
    G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
    l 列表不能打印字符的清单。
    n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
    N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
    p 打印模板块的行。
    P(大写) 打印模板块的第一行。
    q 退出Sed。
    b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
    r file 从file中读行。
    t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    w file 写并追加模板块到file末尾。 
    W file 写并追加模板块的第一行到file末尾。 
    ! 表示后面的命令对所有没有被选定的行发生作用。 
    = 打印当前行号码。 
    '#' 把注释扩展到下一个换行符以前。 
    
    • 替换标记
    g 表示行内全面替换。 
    p 表示打印行。 
    w 表示把行写入一个文件。 
    x 表示互换模板块中的文本和缓冲区中的文本。 
    y 表示把一个字符翻译为另外的字符(但是不用于正则表达式)
    \1 子串匹配标记
    & 已匹配字符串标记
    
    • sed元字符集
    ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
    $ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。
    . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。
    * 匹配0个或多个字符,如:'/*sed/'匹配所有模板是一个或多个空格后紧跟sed的行。
    [] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。 
    [^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。
    \(..\) 匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
    & 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。
    \< 匹配单词的开始,如:/\\> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。
    x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。
    x\{m,\} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。
    x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。
    
    • sed匹配模式正则
    sed '5 q' /etc/passwd  #打印前5行  
    sed -n '/r*t/p' /etc/passwd  #打印匹配r有0个或者多个,后接一个t字符的行  
    sed -n '/.r.*/p' /etc/passwd  #打印匹配有r的行并且r后面跟任意字符  
    sed -n '/o*/p' /etc/passwd  #打印o字符重复任意次  
    sed -n '/o{1,}/p' /etc/passwd  #打印o字重复出现一次以上  
    sed -n '/o{1,3}/p' /etc/passwd  #打印o字重复出现一次到三次之间以上  
    
    • sed对文件内容增加(-i修改源文件)
    cat file.txt
    Python
    Django
    Flask
    Hello World
    
    1. 匹配字符行的行首添加
    sed '/Python/s/^/Lain /' file.txt
    Lain Python
    Django
    Flask
    Hello World
    
    2. 匹配字符行的行尾添加
    sed 's/Python/& Lain/' file.txt
    Python Lain
    Django
    Flask
    Hello World
    
    3. 匹配字符前添加
    sed 's/World/Lain &/' file.txt
    Python
    Django
    Flask
    Hello Lain World
    
    4. 匹配字符后添加
    sed 's/World/& Lain/' file.txt
    Python
    Django
    Flask
    Hello World Lain
    
    5. 匹配行的上一行添加
    sed '/Flask/iHTML' file.txt
    或者
    sed '/Flask/i HTML' file.txt
    Python
    Django
    HTML
    Flask
    Hello World
    
    6. 匹配行的下一行添加
    sed '/Flask/a HTML' file.txt
    或者
    sed '/Flask/aHTML' file.txt
    Python
    Django
    Flask
    HTML
    Hello World
    
    7. 所有行行首添加
    sed 's/^/Lain /g' file.txt
    或者
    sed 's/^/Lain /' file.txt
    Lain Python
    Lain Django
    Lain Flask
    Lain Hello World
    
    8. 所有行行尾添加
    sed 's/$/ Lain/' file.txt
    或者
    sed 's/$/ Lain/g' file.txt
    Python Lain
    Django Lain
    Flask Lain
    Hello World Lain
    
    9.指定行添加内容
    sed '1,2s/$/ Lain/g' file.txt  #1,2行行尾添加
    sed '1,2s/^/# /' file.txt  #1,2行行首添加
    
    • sed对文件内容删除(-i修改源文件)
    cat file.txt
    #Python web
    #Django web
    Flask web
    Hello World web
    JavaScript
    PHP Nginx
    
    1. 删除行首是'#'的行
    sed '/^#/d' file.txt
    Flask web
    Hello World web
    JavaScript
    PHP Nginx
    
    2. 删除行首不是'#'的行
    sed '/^#/!d' file.txt
    #Python web
    #Django web
    
    3. 删除行
    sed '1d' file.txt  #删除第一行
    sed '$d' file.txt  #删除最后一行
    sed '1,2d' file.txt  #删除指定行
    
    4. 删除匹配字符所在的行
    sed '/Hello/d' file.txt
    #Python web
    #Django web
    Flask web
    JavaScript
    PHP Nginx
    
    • sed对文件内容修改(-i修改源文件)
    cat file.txt
    #Python web
    #Django web
    Flask web
    Hello World web
    JavaScript
    PHP Nginx
    
    1. 更换匹配字符所在行
    sed '/Flask/cLAIN' file.txt
    #Python web
    #Django web
    LAIN
    Hello World web
    JavaScript
    PHP Nginx
    
    2. 更换文件中所有匹配字符
    sed 's/web/core/' file.txt
    #Python core
    #Django core
    Flask core
    Hello World core
    JavaScript
    PHP Nginx
    
    3. 更换匹配字符所在行的关键字
    sed '/Flask/s@web@core@' file.txt
    或者
    sed '/Flask/s#web#core#' file.txt
    #Python web
    #Django web
    Flask core
    Hello World web
    JavaScript
    PHP Nginx
    
    4. 替换匹配关键字所在行的'#'
    sed '/web/s/#//' file.txt
    Python web
    Django web
    Flask web
    Hello World web
    JavaScript
    PHP Nginx
    

    sed参考https://www.cnblogs.com/ctaixw/p/5860221.html

    GREP

    GREP(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
    grep的工作方式,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
    grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

    • 语法
    grep [OPTION]... PATTERN [FILE]...
    
    • 匹配模式
     -E, --extended-regexp     扩展正则表达式egrep
     -F, --fixed-strings       一个换行符分隔的字符串的集合fgrep
     -G, --basic-regexp        基本正则
     -P, --perl-regexp         调用的perl正则
     -e, --regexp=PATTERN      后面根正则模式,默认无
     -f, --file=FILE           从文件中获得匹配模式
     -i, --ignore-case         不区分大小写
     -w, --word-regexp         匹配整个单词
     -x, --line-regexp         匹配整行
     -z, --null-data           一个 0 字节的数据行,但不是空行
     -s, --no-messages         不显示错误信息
     -v, --invert-match        显示不匹配的行
     -V, --version             显示版本号
     --help                    显示帮助信息
     --mmap                    use memory-mapped input if possible
    
    • 控制项
    输入控制:
     -m, --max-count=NUM       匹配的最大数
     -b, --byte-offset         打印匹配行前面打印该行所在的块号码。
     -n, --line-number         显示的加上匹配所在的行号
     --line-buffered           刷新输出每一行
     -H, --with-filename       当搜索多个文件时,显示匹配文件名前缀
     -h, --no-filename         当搜索多个文件时,不显示匹配文件名前缀
     --label=LABEL             print LABEL as filename for standard input
     -o, --only-matching       只显示一行中匹配PATTERN 的部分
     -q, --quiet, --silent     不显示任何东西
     --binary-files=TYPE       假定二进制文件的TYPE 类型;TYPE 可以是`binary', `text', 或`without-match'
     -a, --text                匹配二进制的东西
     -I                        不匹配二进制的东西
     -d, --directories=ACTION  目录操作,读取,递归,跳过
     -D, --devices=ACTION      设置对设备,FIFO,管道的操作,读取,跳过
     -R, -r, --recursive       递归调用
     --include=PATTERN         只查找匹配FILE_PATTERN 的文件
     --exclude=PATTERN         跳过匹配FILE_PATTERN 的文件和目录
     --exclude-from=FILE       跳过所有除FILE 以外的文件
     -L, --files-without-match 匹配多个文件时,显示不匹配的文件名
     -l, --files-with-matches  匹配多个文件时,显示匹配的文件名
     -c, --count               显示匹配了多少次
     -Z, --null                在FILE 文件最后打印空字符
    
    文件控制:
     -B, --before-context=NUM  打印匹配本身以及前面的几个行由NUM控制
     -A, --after-context=NUM   打印匹配本身以及随后的几个行由NUM控制
     -C, --context=NUM         打印匹配本身以及随后,前面的几个行由NUM控制
     -NUM                      根-C的用法一样的
     --color[=WHEN],
     --colour[=WHEN]           使用标志高亮匹配字串;
     
     -U, --binary              使用标志高亮匹配字串;
     -u, --unix-byte-offsets   当CR 字符不存在,报告字节偏移(MSDOS 模式)
    
    • 案例
    - 测试文件
    cat test.txt
    systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:997:995:User for polkitd:/:/sbin/nologin
    colord:x:996:994:User for colord:/var/lib/colord:/sbin/nologin
    abrt:x:173:173::/etc/abrt:/sbin/nologin
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    unbound:x:995:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    libstoragemgmt:x:993:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
    geoclue:x:992:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
    rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin
    rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
    pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
    gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    radvd:x:75:75:radvd user:/:/sbin/nologin
    qemu:x:107:107:qemu user:/:/sbin/nologin
    chrony:x:990:985::/var/lib/chrony:/sbin/nologin
    mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
    pcp:x:989:984:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin
    gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin
    
    1. 匹配含有'mysql'的行
    grep mysql test.txt
    mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
    
    2. 匹配以'mysql'或者'tss'开头的行
    grep '^(tss|mysql)' test.txt
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
    
    3. 递归匹配'soft'目录下所有含有'Daemon'的行并显示行号
    grep -Frn 'Daemon' /soft
    
    4. 不显示以'mysql'或者'tss'开头的行
    grep -n '^(root|mysql)' test.txt
    
    5. 不区分大小写匹配
    grep -i '^(ROOT|MYSQL)' test.txt
    mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
    
    6. 匹配关键字并打印前后
    grep -A3 'gdm' test.txt  #A后三行
    gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    radvd:x:75:75:radvd user:/:/sbin/nologin
    grep -B3 'gdm' test.txt  #B前三行
    grep -B3 'gdm' test.txt  #C前后三行
    
    FIND

    FIND命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    • 语法
    find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;
    
    • 参数
    pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
    -print:  find命令将匹配的文件输出到标准输出。
    -exec:   find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。
    -ok:     和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    -print    将查找到的文件输出到标准输出
    -exec   command   {} ;      —–将查到的文件执行command操作,{} 和 ;之间有空格;
    
    -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
    -amin n : 在过去 n 分钟内被读取过
    -anewer file : 比文件 file 更晚被读取过的文件
    -atime n : 在过去 n 天过读取或执行过的文件,,-n指n天以内,+n指n天以前
    -cmin n : 在过去 n 分钟内被修改过
    -mtime n : 按文件内容修改时间来查找文件,-n指n天以内,+n指n天以前
    -cnewer file :比文件 file 更新的文件
    -ctime n : 在过去 n 天过修改过的文件包括权限修改,-n指n天以内,+n指n天以前
    -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
    -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
    -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
    -depth : 使查找在进入子目录前先行查找完本目录
    -fstype : 查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    -mount : 查文件时不跨越文件系统mount点
    -follow : 如果遇到符号链接文件,就跟踪链接所指的文件
    -cpio : 查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    -prune : 忽略某个目录
    
    • 案例
    find   -name april*                     在当前目录下查找以april开始的文件
    find   -name   april*   fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
    find   -name ap* -o -name may*   查找以ap或may开头的文件
    find   /mnt   -name tom.txt   -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
    find   /mnt   -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
    find   /tmp   -name wa* -type l            在/tmp下查找名为wa开头且类型为符号链接的文件
    find   /home   -mtime   -2                 在/home下查最近两天内改动过的文件
    find   /home    -atime -1                  查1天之内被存取过的文件
    find   /home -mmin    +60                  在/home下查60分钟前改动过的文件
    find   /home   -amin   +30                  查最近30分钟前被存取过的文件
    find   /home   -newer   tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
    find   /home   -anewer   tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
    find   /home   -used   -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
    find   /home   -user cnscn                列出/home目录内属于用户cnscn的文件或目录
    find   /home   -uid   +501                  列出/home目录内用户的识别码大于501的文件或目录
    find   /home   -group   cnscn              列出/home内组为cnscn的文件或目录
    find   /home   -gid 501                   列出/home内组id为501的文件或目录
    find   /home   -nouser                    列出/home内不属于本地用户的文件或目录
    find   /home   -nogroup                   列出/home内不属于本地组的文件或目录
    find   /home    -name tmp.txt    -maxdepth   4   列出/home内的tmp.txt 查时深度最多为3层
    find   /home   -name tmp.txt   -mindepth   3   从第2层开始查
    find   /home   -empty                     查找大小为0的文件或空目录
    find   /home   -size   +512k                查大于512k的文件
    find   /home   -size   -512k               查小于512k的文件
    find   /home   -links   +2                查硬连接数大于2的文件或目录
    find   /home   -perm   0700                查权限为700的文件或目录
    find   /tmp   -name tmp.txt   -exec cat {} ;  在/tmp目录下搜索并查看tmp.txt文件
    find   /tmp   -name   tmp.txt   -ok   rm {} ;  在/tmp目录下搜索并删除tmp.txt文件
    find   /tmp  -type  f  -ctime  +30  -ok   rm {} ;  搜索/tmp下30天以前创建的文件并删除
    find   /tmp  -type  f  -ctime  +7  -exec cp {} /soft ;  搜索/tmp下7天以前创建的文件并拷贝到/soft目录下
    find    /   -amin    -10     查找在系统中最后10分钟访问的文件
    find    /   -atime   -2        查找在系统中最后2天访问的文件
    find    /   -empty             查找在系统中为空的文件或者文件夹
    find    /   -group   cat        查找在系统中属于 groupcat的文件
    find    /   -mmin   -5         查找在系统中最后5分钟里修改过的文件
    find    /   -mtime   -1       查找在系统中最后24小时里修改过的文件
    find    /   -nouser           查找在系统中属于作废用户的文件
    find    /   -user    fred     查找在系统中属于FRED这个用户的文件
    

    本文来自博客园,作者:白日梦想家Zz,转载请注明原文链接:https://www.cnblogs.com/zzlain/p/15494619.html

  • 相关阅读:
    【STL源码学习】STL算法学习之二
    android_SurfaceView 画图
    android_layout_linearlayout(一)
    LINUX_记录(一)
    工作经验之石氏thinking
    android_layout_linearlayout(二)
    android_layout_relativelayout(一)
    两个线程解决一个线程卡之路
    android_layout_relativelayout(二)
    android_layout_framelayout
  • 原文地址:https://www.cnblogs.com/zzlain/p/15494619.html
Copyright © 2020-2023  润新知