一 、grep
#grep “关键字” –Rn ./* ;查看某个目录下的文件中是否包含某关键字
#grep "start" –Rn ./* ;./表示当前目录下,*表示查找当前目录下的所有文件,目录,-R表示递归查找子目录,-n表示找到时,输出所在行数
#grep"start" –Rn uboot/* ; uboot表示在uboot目录下搜索,*表示查找当前目录下的所有文件,目录,-R表示递归查找子目录,-n表示找到时,输出所在行数
二、find
查找包含"u-boot.lds"字样的文件
#find -name "u-boot.lds" ; 在当前目录及其子目录中文件名查找包含"u-boot.lds"字样的文件
#find uboot/ "u-boot.lds"; 在uboot目录及其子目录下查找文件名包含"u-boot.lds"字样的文件
三、xargs
可以使前一个命令的输出作为当前命令参数的命令
# find –name “*so.*” | xargs grep “tan”
四、tar
格式:".gz" ".z"是gzip格式 ;
".bz2"是bzip2格式;
"tar"只是一个文件包
参数:c: 创建,用来生成文件包
x: 提取,从文件包中提取文件(与参数c不能共用)
z: gzip格式进行处理,c结合是压缩,x结合是解压
j: bzip格式进行处理
f: 表示文件,后面接一个文件名
#tar czf dir1.tar.gz dir1
#tar cjf dir1.tar.bz2 dir1
#tar xzf dir1.tar.gz
#tar xjf dir1.tar.bz2
#tar xzf dir1.tar.gz -C <dir> // -C表示 将dir1.tar.gz解开到<dir>目录下
五、diff
用来比较文件,目录,也可以用来制作补丁文件.
-u: 在比较结果中输出上下文一些相同的行,利于人工定位
-r : 递归比较各个子目录下的文件
-N: 将不存在的文件作空文件处理
-b: 忽略空白处的改变
-w: 忽略对空格的比较
-B: 忽略对空行的比较
如uboot, uboot_done是修改过的,现在做一个uboot的补丁:
#diff-urNwB uboot uboot_done > uboot_done.diff
六、patch
打补丁, 最重要的参数就是
-pn: 意思是忽略路径中第n个斜线之前的目录,如下图
我们在有一个uboot_done.diff的补丁文件,现在想在我们的uboot下面打上补丁,通过
#cat uboot_done.diff参看当前的补丁文件
显然我们希望将test1/test2/test3.c添加到我们的uboot上面,但是不希望uboot_done这个目录也进入uboot目录里面
因为uboot和uboot_done应该是同一级目录,则就应该忽略uboot_done这个目录,即n=1, patch的参数为-p1
/*
*-d 指需要打补丁的目录
*/
#patch <span style="color:#FF0000;">-p1</span> -d uboot/ < uboot_done.diff
or
#cd uboot
#patch <span style="color:#FF0000;">-p1</span> < ../uboot_done.diff