请考虑以下情形:如何在bash中使用xargs命令检查版本?
$ find/-type f -name httpd
/opt/httpd.bin/httpd
/etc/rc.d/init.d/httpd
/usr/sbin/httpd
......
我想检查每一个人使用-version选项类似的结果:
/usr/sbin/httpd -version
但我不能写xargs的命令,是可行吗? 非常感谢提前。
请考虑以下情形:如何在bash中使用xargs命令检查版本?
$ find/-type f -name httpd
/opt/httpd.bin/httpd
/etc/rc.d/init.d/httpd
/usr/sbin/httpd
......
我想检查每一个人使用-version选项类似的结果:
/usr/sbin/httpd -version
但我不能写xargs的命令,是可行吗? 非常感谢提前。
您可以使用xargs的检查版本是这样的:
find ./ -type f -name httpd | xargs -n1 -I{} bash -c "{} --version"
但我不推荐,它的繁琐
您可以使用:
find ./ -type f -name httpd -exec {} --version \; -print
(带打印是可选)
在附注中,确保您确实想要执行所有这些e文件,/etc/rc.d/init.d/httpd可能不知道--version是什么意思,其中一些可能不可执行。
xargs
是不是真的对这份工作的合适工具,for
循环会的工作,虽然:
for httpd in $(find/-type f -name httpd)
do
$httpd --version
done
如果你有成千上万的httpd
当时的你可能会遇到一个问题与$(find...)
的长度输出,但如果你有很多httpd
,你可能会遇到更大的问题。