本帖最后由 Bd_果果 于 2014-5-30 15:11 编辑
find
1.作用
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
2.格式
find[path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
3.主要参数
请大家通过运行 manfind 自行查找学习find的其他参数。
4.应用技巧
find命令查找文件的几种方法:
(1)根据文件名查找
例如,我们想要机型目录下的autopatch/bosp中查找AssetManager.smali的文件,可以使用如下命令:
确保我们已经在机型目录下后,执行如图所示的命令,就可以找到AssetManager.smali文件的位置了
(2)根据部分文件名查找方法
有时我们只想查找以Asset开头的文件,这个时候需要用到通配符“*”可以输入下面命令:
输入这个命令以后,Linux系统会将在autopatch/bosp下面的所有以"Asset"开头的文件全部列出来
Grep
1.作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep[options]
3.主要参数
[options]主要参数:
r:递归搜索目录下的所有文件
i:不区分大小写(只适用于单字符)。
h:查询多文件时不显示文件名。
n:显示匹配行及行号。
s:不显示不存在或无匹配文本的错误信息。
v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
4.应用实例
比如我想要在autopatch/bosp中查找出现字符selectDefaultTheme的地方,我只需要输入如下命令:
命令解释:
grepselectDefaultTheme * -rns
*:当前目录下的所有文件及目录(没有包含当前目录的隐藏文件)
r:循环递归查找
n: 显示行号
s:不显示不匹配等错误信息
假如,我想在autopatch/bosp中查找selectDefaultTheme函数定义的位置,这个时候就需要用到正则了,命令如下:
命令解释:
grep "\.method.*selectDefaultTheme"* -rns
\. : 符号 ‘.’
.* :正则表达式,代表任意多个字符
管道:
管道是命令间数据传递的通道,linux命令里面用'|'表示管道
应用实例:
用管道的方式来实现grep实例中的在autopatch/bosp中查找selectDefaultTheme函数的定义,命令如下:
其实管道的作用就是拿到前面的命令的输出当作后一个命令的输入,以图五的例子来讲,就是将‘grep selectDefaultTheme * -rns’命令的输出当作'grep "\.method"'的输入。
意思就是在图三的输出结果中查找包含'.method'字符的行
|