分类:
2014-09-03 13:21:20
原文地址:pkg*命令查询功能在Solaris 10中的改进 作者:东方蜘蛛
pkg*命令包含很多命令,在Solaris10中对文件的查询有了很好的改进,不需要我们自己用一个复杂的命令来做了,而且还支持模式匹配的查询,这个好像比linux要好点了(不知道Linux现在支持不),具体来说,有以下的方便:
1,查询某个文件属于哪个包
这个功能其实在Solaris 10之前也可以做到,但需要自己写一个组合命令来实现。比如我们需要查询一个文件属于哪个包,就需要用以下的命令组合来做,比如,我要查/usr/dt/bin/dtlogin属于哪个包,
# grep dtlogin /var/sadm/install/contents
可惜,这个你会得到很多的输出,需要进一步的精确,加上路径,就是如下了:
# grep /usr/dt/bin/dtlogin /var/sadm/install/contents
/usr/dt/bin/dtlogin f none 0555 root bin 164588 5377 1122665320 SUNWdtdte
好长的命令,而且我还要知道这个通配符 的用法,这时我才能知道/usr/dt/bin/dtlogin属于SUNWdtdte这个包。而在Linux中,rpm很早就支持这个功能,应该是rpm -qf /usr/dt/bin/dtlogin吧。现在在Solaris 10中,想得到以上信息,也变得简单了许多,只要用pkgchk 命令就可以了:
# pkgchk -lp /usr/dt/bin/dtlogin
Pathname: /usr/dt/bin/dtlogin
Type: regular file
Expected mode: 0555
Expected owner: root
Expected group: bin
Expected file size (bytes): 164588
Expected sum(1) of contents: 5377
Expected last modification: 7月 30 03时28分40秒 2005
Referenced by the following packages:
SUNWdtdte
Current status: installed
而且我能知道许多关于这个包的参数,但是注意,一定要用pkgchk -lp,不能只用 -l或-pl,否则就不能输出,这是不太友好的一个表现。
2,支持匹配查询
如果我只知道一个文件名或部分文件名,想知道有哪些包中有这个的文件名或者说包含了这样的字符串,就可以用模糊查询的方法来做,同样是用pkgchk,但参数是 -P(大写)就可以了,例如:
# pkgchk -lP dtlogin
同样,需要注意的是参数的写法。