歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> pkg*命令查詢功能在Solaris 10中的改進

pkg*命令查詢功能在Solaris 10中的改進

日期:2017/2/28 11:25:44   编辑:關於Unix


  pkg*命令包含很多命令,在Solaris10中對文件的查詢有了很好的改進,不需要我們自己用一個復雜的命令來做了,而且還支持模式匹配的查詢,這個好像比linux要好點了(不知道Linux現在支持不),具體來說,有以下的方便:
1,查詢某個文件屬於哪個包
  這個功能其實在Solaris 10之前也可以做到,但需要自己寫一個組合命令來實現。比如我們需要查詢一個文件屬於哪個包,就需要用以下的命令組合來做,比如,我要查/usr/dt/bin/dtlogin屬於哪個包,
CODE:# grep dtlogin /var/sadm/install/contents

可惜,這個你會得到很多的輸出,需要進一步的精確,加上路徑,就是如下了:
CODE:# 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 命令就可以了:
CODE:# 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(大寫)就可以了,例如:
CODE:# pkgchk -lP dtlogin

同樣,需要注意的是參數的寫法。
Copyright © Linux教程網 All Rights Reserved