grep(egrep)
grep(egrep)用来在一个文本文件(ASCII,字符串)中查找一个特定的字符串
egrep是用扩展的正则表达式去进行匹配查找。
语法:
grep(egrep) options [正则表达式] filelist
在filelist列出的所有文件里面,查找以"正则表达式"所描述的字符串。
options :
-n 显示查找到的字符串所有行号
-E 用扩展的正则表达式
grep -E
<=> egrep
-i ignore在字符串查找时忽略大小写
-i "main"
[mM][aA][iI][nN]
-# 表示同时显示匹配行的上下#行
#表示一个整数值
-c count打印每个文件里匹配行的个数
-H 显示文件名
-h 不显示文件名
匹配内容颜色高亮显示
--color=always 总是高亮显示
--color=never 不高亮显示
--color=auto 随机
find
find 用来在一个文件系统中查找指定的文件
语法:
find [path ...] [options]
options :
-name pattern
指定要查找的文件的名字,可以用通配符
* 代表0个或任意多个字符
? 代表一个任意字符
如:
find ./ -name "*.c"
-regex pattern
以正则表达式的方式指定要查找的文件名
如:
find /mnt/hgfs/ -regex ".*[ch]"
找到上述目录以及目录一下的所有的 .c / .h / .sh
-type b|c|d|p|f|l|s 指定要搜索的文件类型
b: block块设备文件
c: char字符设备文件
d: directory 目录文件
p: pipe 管道文件
f: regular file 普通文件
l: link 软链接文件(符号链接)
s: socket 套接字文件
-size n[cwbKMG]
-size 5 默认单位为块
c: 单位为字节
w: 单位为字
b: 单位为块 512B
K: 1K = 1024B
M: 1M = 1024K
G: 1G = 1024M
-perm mode 要查找的文件的权限
permission 权限
mode 有两种写法:
-mode 要求所有 (为1)权限位都要被匹配
如:
-perm -0664
/mode 只要匹配 (为1) 一位即可
如:
-perm -0111
带查找的文件权限只要有一个可执行权限位即可
-newer file
查找比文件file更加新的文件
带查找的文件的修改时间在file这个文件的后面即可
-delete
找到即删除
-exec command {
} \;
每查找一个文件就执行 command这个命令,
{
} 代表找到的文件的文件名,找到一个文件,就执行
一次command这个命令。
如:
find . -name "*.c" -exec ls -l {
} \;
-exec command {
} +
所有文件查找完成后,再执行command这个命令,
{
} + 代表所有查找到的文件的文件名(以空格隔开)
find . -regex ".*[ch]" -exec tar -zcvf C.tar.gz {
} +