Linux基础命令之: Linux常用命令
| -q | 只报告文件是否有不同,不输出结果 |
| -e,-ed | 命令格式 |
| -f | RCS(修订控制系统)命令简单格式 |
| -c,--context | 旧版上下文格式 |
| -u,--unified | 新版上下文格式 |
| -Z | 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩 |
(4)使用实例。
以下有两个文件hello1.c和hello2.c。
/* hello1.c */
#include <stdio.h>
void main()
{
printf("Hello!This is my home!\n");
}
/* hello2.c */
#include <stdio.h>
void main()
{
printf("Hello!This is your home!\n");
}
以下实例主要讲解了各种不同格式的比较和补丁文件的创建方法。
① 主要格式比较。
首先使用旧版上下文格式进行比较。
[root@localhost david]# diff -c hello1.c hello2.c
*** hello1.c Sat Jan 14 16:24:51 2006
--- hello2.c Sat Jan 14 16:54:41 2006
***************
*** 1,5 ****
#include <stdio.h>
void main()
{
! printf("Hello!This is my home!\n");
}
--- 1,5 ----
#include <stdio.h>
void main()
{
! printf("Hello!This is your home!\n");
}
可以看出,用旧版上下文格式进行输出时,在显示每个有差别行的同时还显示该行的上下3行,区别的地方用"!"加以标出,由于示例程序较短,上下3行已经包含了全部代码。
接着使用新版的上下文格式进行比较。
[root@localhost david]# diff -u hello1.c hello2.c
--- hello1.c Sat Jan 14 16:24:51 2006
+++ hello2.c Sat Jan 14 16:54:41 2006
@@ -1,5 +1,5 @@
#include <stdio.h>
void main()
{
- printf("Hello!This is my home!\n");
+ printf("Hello!This is your home!\n");
}
可以看出,在新版上下文格式输出时,仅把两个文件的不同之处分别列出,而相同之处没有重复列出,这样大大方便了用户的阅读。
接下来使用命令格式进行比较。
[root@localhost david]# diff -e hello1.c hello2.c
4c
printf("Hello!This is your home!\n");
可以看出,命令符格式输出时仅输出了不同的行,其中命令符"4c"中的数字表示行编号,字母的含义为:a表示添加,b表示删除,c表示更改。因此,-e选项的命令符表示:若要把hello1.c变为hello2.c,就需要把hello1.c的第4行改为显示出的"printf("Hello!This is your home!\n");"。
选项"-f"和选项"-e"显示的内容基本相同,就是数字和字母的顺序相交换了,从以下的输出结果可以看出。
[root@localhost david]# diff -f hello1.c hello2.c
c4
printf("Hello!This is your home!\n");
在diff选项缺省的情况下,输出结果如下所示。
[root@localhost david]# diff hello1.c hello2.c
4c4
< printf("Hello!This is my home!\n");
---
> printf("Hello!This is your home!\n");
可以看出,diff缺省情况下的输出格式充分显示了如何将hello1.c转化为hello2.c,即通过"4c4"实现。
② 创建补丁文件(也就是差异文件)是diff的功能之一,不同的选项格式可以生成与之相对应的补丁文件,如下面扔例子所示。
[root@localhost david]# diff hello1.c hello2.c >hello.patch
[root@localhost david]# vi hello.patch
4c4
< printf("Hello!This is my home!\n");
---
> printf("Hello!This is your home!\n");
可以看出,使用缺省选项创建补丁文件的内容和前面使用缺省选项的输出内容是一样的。
| 小知识 | 上例中所使用的">"是输出重定向。通常在Linux上执行一个shell命令行时,会自动打开3个标准文件:标准输入文件(stdin),即通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),前两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,并且将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。这就是通常使用的标准输入/输出方式。 直接使用标准输入/输出文件存在以下问题:首先,用户输入的数据只能使用一次。当下次希望再次使用这些数据时就不得不重新输入。同样,用户对输出信息不能做更多的处理,只能等待程序的结束。 为了 |
Linux Shell 用户切换 su useradd 操作系统 相关文章:
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)
