Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3194491
  • 博文数量: 443
  • 博客积分: 11301
  • 博客等级: 上将
  • 技术积分: 5679
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-08 12:30
个人简介

欢迎加入IT云增值在线QQ交流群:342584734

文章分类

全部博文(443)

文章存档

2022年(1)

2021年(1)

2015年(2)

2014年(1)

2013年(1)

2012年(4)

2011年(19)

2010年(32)

2009年(2)

2008年(4)

2007年(31)

2006年(301)

2005年(42)

2004年(2)

分类:

2006-08-27 10:24:43

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

同样,需要注意的是参数的写法。

阅读(2483) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~