linux中的查找命令

which命令:使用which命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置上的命令。在PATH指定的路径中进行搜索,

                 返回第一个搜索结果。

                 which grep /bin/grep                    which find /usr/bin/find                 which which shell built-in command

find命令:最常见和最强大的查找命令,使用格式 find <指定目录> <指定条件> <指定动作>。

              find . -name "my*"  查找当前目录下(包括子目录),以my开头的所有文件。

              find . -name "my*" -ls  查找当前目录下(包括子目录),以my开头的所有文件,显示详细信息。

              find /etc -name "my*" -ls 查找etc目录下(包括子目录),以my开头的所有文件,显示详细信息。

              指定的条件还可以是:-group -user -type(-b 块设备文件 -c字符设备文件 -d目录 -f普通文件)

                                          -amin -n(过去n分钟之内访问的文件)  -cmin -n(改变文件状态)  -mmin -n(改变文件内容)

                                          find -mmin -10 当前目录下过去10分钟之内,改变内容的文件。

    find -maxdepth 2 -name passwd,在当前目录下,及其最大两层深度的子目录中查找passwd文件。

      -maxdepth是1,之查找当前目录

    find -level 1 -name passwd,在当前目录,及其下一级目录中,查找passwd的文件。

    find -mindepth 3 -maxdepth 5 -name passwd

      -not相反匹配。

    find -not -maxdepth 1 -iname "my_program",iname不区分大小写。

      -perm 根据权限查找。

    find -perm -g=r -type f -exec ls -l {},与当前用户同组,且有读权限,的文件,显示出来。

      -size 按照size的大小来查找。

    find ./ -size 2048,刚好等于2048的文件,find ./ -size  +2048,大于2048的文件。

      多条件匹配,-a 多个条件必须同时满足,-o两个条件满足一个即可。

    find ./  -size  +20480  -a  -size  -204800,查找同时满足大于10M,小于100M的文件。

      查找最大文件,或最小的文件。

    find ./  -type f  -exec  ls  -s  {} \: | sort -n  -r | head -5,拿出当前目录下最大的5个文件。

    find  -newer FILE,查找文件修改时间,在FILE之后的文件,

    find  -anewer  FILE,查找文件访问时间,在FILE之后的文件,

 

grep命令:强大的文本搜索工具,使用正则表达式搜素文本('字符'搜索),并把匹配的行打印出来。

               使用格式 grep 'string' filename 不加filename时,可以用*代表文件夹中的所有文件。

                'string'中可以使用正则表达式。*表示匹配前一字符N次(0...)  ^表示行首  $表示行尾  \<单词开始  \>单词结尾  -r 搜索子目录

                                                         元字符.表示任何一个字符。[]内表示字符集,[^]字符集取反,[-]字符范围(0-9/a-z),\{\}表示次数

               grep 'test' d* 在以d开头的文件中找test。

               grep '[a-z]\{5\}' aa 在aa文件中,找连续的5次字符。 

               grep ’\<man\' *  匹配‘manic’和‘man’,但不是‘Batman’,注意反义字符的添加。

               grep ‘\<man\>'   匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

               grep pattern1 | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

               -I 忽略大小写。

               -n 打印匹配到的行数。

               -v 打印不包含匹配到的字符串的行。(反向搜索)

               -l 只输出匹配到的文件名

               -L 反向搜索,输出没有匹配到的文件名

    --exclude-dir=  不匹配某个类型的文件的搜索

    --color=always   匹配字符 高亮

 

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

                 whereis grep  /bin/grep  /usr/share/man/man1/grep.1.gz

posted @ 2015-04-07 10:42  _9_8  阅读(578)  评论(0编辑  收藏  举报