find命令:
F i n d是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录,
一般形式为:find pathname -options [-print -exec -ok]
find命令选项
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用了- d e p t h选项,那么- p r u n e选项将被f i n d命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
ex:[spsn@localhost Tan_C]$ find /etc -type d @:查找/etc下的目录
[spsn@localhost Tan_C]$ find . -type f @:查找当前目录下的普通文件
[spsn@localhost Tan_C]$ find . -name "*.c" @:查找当前目录下文件名以.c结尾的文件
[spsn@localhost Tan_C]$ find . -mtime -5 @:查找当前目录下文件修改时间在5日之内的文件
grep命令
。g r e p(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式, g r e p打印包含模式的所有行。g r e p支持基本正
则表达式,也支持其扩展集。g r e p有三种变形,即:
G r e p:标准g r e p命令,本章大部分篇幅集中讨论此格式。
E g r e p:扩展g r e p,支持基本及扩展的正则表达式,但不支持\ q模式范围的应用,与之相对应的一些更加规范的模式,这里也不予讨论。
F g r e p:快速g r e p。允许查找字符串而不是一个模式。不要误解单词f a s t,实际上它与g r e p速度相当。
g r e p一般格式为:grep [选项]基本正则表达式[文件].这里基本正则表达式可为字符串。
grep选项
常用的g r e p选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
exec:
[spsn@localhost Tan_C]$ grep "main" * @在当前目录的所有文件中查找单词"main"
[spsn@localhost Tan_C]$ grep "printf" sum.c @在当前目录下的sum.c文件中查找字符串"printf"
[spsn@localhost Tan_C]$ grep -c "printf" letter.c @显示含有字符串"printf"的行数
几个例子中,将用到管道命令,即符号|,使用它左边命令的输出结果作为它右边命令的输入。
[spsn@localhost Test]$ ls -l|grep '^d' @查询当前目录列表中的目录
g r e p不只应用于文件,也可应用于字符串。为此使用e c h o字符串命令,然后对g r e p命令使用管道输入。
[spsn@localhost Test]$ STR="Mary Joe Peter Pauline"
[spsn@localhost Test]$ echo $STR|grep "Mary"