次のシナリオを検討してください。
$ 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
は実際にはその仕事に適したツールではありませんが、for
ループは機能します。
for httpd in $(find / -type f -name httpd)
do
$httpd --version
done
数千の場合httpd
、出力の長さに問題が発生する可能性があり$(find...)
ますが、その数が多い場合は、おそらく手に大きな問題が発生しますhttpd
。
xargsを使用して、次のようにバージョンを確認できます。
find ./ -type f -name httpd | xargs -n1 -I{} bash -c "{} --version"
しかし、私はお勧めしません、それは面倒です
次を使用できます。
find ./ -type f -name httpd -exec {} --version \; -print
(印刷はオプションです)
ちなみに、これらすべてのファイルを本当に実行したいことを確認してください。/etc/rc.d/init.d/httpdは--versionの意味を知らない場合があり、一部のファイルは実行できない場合があります。