次のコマンドでの xargs の役割は?
find . -name "*.tmp" | xargs rm正答
- find の結果を 1 行ずつ画面に表示してから rm を実行する
- rm の実行前に 1 件ずつ削除してよいか確認する
- 標準入力から受け取ったパスを rm の引数として並べて実行する
- find の結果を rm の標準入力として渡す
解説
rm のようにファイル名を引数として受け取るコマンドは、標準入力を読まない。そのため find の結果をパイプで直接 rm に渡しても何も起きず、xargs が間に入って受け取った行を引数に並べて rm a.tmp b.tmp ... の形で実行する。選択肢 4 は xargs を使わなかった場合の説明に近い。空白を含むファイル名で壊れないようにするには find -print0 | xargs -0 を使う。確認を挟むのは xargs -p というオプションで、既定では確認しない。
参考: man7.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ