zoukankan      html  css  js  c++  java
  • linux搜索查找指令

    一、find命令用于在文件树中查找文件

    语法:

    find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;
    

    find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
    若为当前目录则用.代替

    参数:

    expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

    -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

    -amin n : 在过去 n 分钟内被读取过

    -anewer file : 比文件 file 更晚被读取过的文件

    -atime n : 在过去n天内被读取过的文件

    -cmin n : 在过去 n 分钟内被修改过

    -cnewer file :比文件 file 更新的文件

    -ctime n : 在过去n天内被修改过的文件

    -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

    -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

    -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

    -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

    -type c : 文件类型是 c 的文件。

    -name:按照文件名查找文件

    -perm:按照文件权限查找文件

    -user:按照文件属主来查找文件

    -size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】

    -group:按照文件所属的组来查找文件

    -mtime<-n><+n>:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前

    -newer file1 file2:查找更改时间在file1和file2之间的文件

    例如:

    find . -mtime -2:查找当前目录下48小时修改过的文件

    find . -name "*.c"":将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

    find /opt/soft/test -perm 777:查找指定目录下权限为777的文件

    find . -type f -name "*.log":查找当前目录下以".log"结尾的普通文件

    find . -type d | sort:查找当前所有目标目录并排序

    find . /home/wansw -size +20M:查找大于20M的文件

    find . -type f:将目前目录其其下子目录中所有一般文件列出

    find . -ctime -20:将目前目录及其子目录下所有最近 20 天内更新过的文件列出

    find /var/log -type f -mtime +7 -ok rm {} ; :查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们

    find / -type f -size 0 -exec ls -l {} ;:为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

    二、grep,用于过滤/搜索指定字符串。可以使用正则表达式,能配合多种命令使用。

    用法:grep 【选项】 查找内容 源文件

    -A:显示符合的行及之后的内容

    -B:显示符合的行及之前的内容

    -C:显示符合的行及前后的内容

    -c:计算符合的行数目

    -n:显示匹配行和行号

    -i:忽略大小写

    规则表达式

    :'grep'表示匹配所有以grep开头的行

    '表示匹配所有以grep结尾的行

    .:'gr.p'表示匹配'gr'后面接任意字符然后是'p'

    :'grep'表示匹配一个或多个空格后紧跟grep的行

    []:[Gg]rep表示匹配Grep与grep

    []:[A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行

    例如(grep命令大多数时候多要和别的命令一起使用才有意义):

    ps -ef | grep -c SVN:查找指定的进程的个数

    cat test.txt | grep -f test2.txt:从text2.txt中读取关键字后在test.txt中搜索

    cat test.txt | grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号

    grep 'linux' text.txt test2.txt:从多个文件中搜索关键字'linux'

    cat test.txt | grep -E 'ed|at':显示包含ed或at的行

    转载自:https://www.cnblogs.com/wansw/p/10788902.html
    https://www.runoob.com/linux/linux-comm-find.html
    谢谢大佬的总结和分享

  • 相关阅读:
    模拟
    广搜——最优方案
    动态规划——背包
    动态规划——树规
    动态规划——区间
    fill 的用法
    状态压缩dp
    超大背包问题
    lower_bound
    弹性碰撞 poj 3684
  • 原文地址:https://www.cnblogs.com/jiaojiaow/p/13691213.html
Copyright © 2011-2022 走看看