liuux/ Unix 文件管理命令(五)

diffstat命令 

根据diff的比较结果,显示统计数字。

diffstat读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量。

语法

diff [-wV][-n <文件名长度>][-p <文件名长度>]

参数

· -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

· -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。

· -w  指定输出时栏位的宽度。

· -V  显示版本信息。

实例 

1).用户也可以直接使用"|"diff指令所输出的结果直接送给diffstat指令进行统计结果的显示。

使用该指令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

将目录"test1""test2"下的同名文件"testf.txt"使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示,输入如下命令:

$ diff test1 test2 | diffstat   #进行比较结果的统计显示

        注意:使用这条命令可以非常方便地实现统计显示的功能。

2).对于查看文件中的内容,用户可以通过指令"cat"进行查看即可,具体操作如下:

$ cat test1/testf.txt           #查看test1/testf的内容  

abc  

def  

ghi  

jkl  

mno  

pqr  

stu  

vws  

$ cat test2/testf.txt           #查看test2/testf的内容  

abc  

def  

ghi  

jkl  

mno

3).从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

testfile | 2 +-             #统计信息输出显示  

1 file changed, 1 insertion(+), 1 deletion(-)

  

 

file命令

用于辨识文件类型。

通过file指令,我们得以辨识该文件的类型。

语法:

file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

参数

· -b  列出辨识结果时,不显示文件名称。

· -c  详细显示指令执行过程,便于排错或分析程序执行的情形。

· -f<名称文件>  指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。

· -L  直接显示符号连接所指向的文件的类别。

· -m<魔法数字文件>  指定魔法数字文件。

· -v  显示版本信息。

· -z  尝试去解读压缩文件的内容。

· [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

实例:

1).显示文件类型:

[root@localhost ~]# file install.log

install.log: UTF-8 Unicode text

 

[root@localhost ~]# file -b install.log      <== 不显示文件名称

UTF-8 Unicode text

 

[root@localhost ~]# file -i install.log      <== 显示MIME类别。

install.log: text/plain; charset=utf-8

 

[root@localhost ~]# file -b -i install.log

text/plain; charset=utf-8

2).显示符号链接的文件类型

[root@localhost ~]# ls -l /var/mail

lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

 

[root@localhost ~]# file /var/mail

/var/mail: symbolic link to `spool/mail'

 

[root@localhost ~]# file -L /var/mail

/var/mail: directory

 

[root@localhost ~]# file /var/spool/mail

/var/spool/mail: directory

 

[root@localhost ~]# file -L /var/spool/mail

/var/spool/mail: directory