我想要得到rpm -qa | grep something
的结果 rpm -qa | grep something
,然后运行结果我得到了rpm -ql result-i-got
,并在一行。
我发现这个工作:
rpm -ql $(rpm -qa | grep something)
我想知道,有没有更好的甚至是不同的方法来得到与我上面写的相同的结果? 谢谢。
xargs
是这样做的:
rpm -qa | grep something | xargs rpm -ql
你实际上可以提供通配符参数给rpm -qa
; 这避免了需要管道到另一个命令,而不是rpm -qa | grep something
rpm -qa | grep something
,你可以使用
rpm -qa '*something*'
使用单引号或双引号来防止shell将星号扩展为shell匹配模式。
例:
$ rpm -qa '*vim*' vim-enhanced-7.0.109-7.2.el5 vim-minimal-7.0.109-7.2.el5 vim-common-7.0.109-7.2.el5
上面的命令可以和-l
选项结合在一起列出相关软件包中的文件。
rpm -qal '*vim*'
此命令的一个问题是,如果返回多个包,则不清楚哪些文件属于哪个包,因为包名不会被打印。 要在输出中包含软件包名称,可以添加--queryformat
选项以更好地控制信息的打印方式。 例如,下面的例子打印包的名字,用一连串的连字符 – 下划线来加下划线,后跟该包提供的文件列表:
rpm -qal --qf "\n%{NAME}\n--------\n" '*vim*'
rpm
手册页有关于定制命令输出的更多信息。
如果你经常使用这个命令,你可以把它变成一个别名:
alias rpmlist='rpm -qal --qf "\n%{NAME}\n--------\n"'
并像这样使用它
rpmlist '*vim*' | less