web-dev-qa-db-ja.com

xargsを取得して、コマンドラインを実行せずに生成するコマンドラインを表示するにはどうすればよいですか?

かなりの数のLinuxコマンドには、それを実行せずに何をするかを表示するドライランオプションがあります。それを行うxargsのマニュアルページには何も表示されず、それをエミュレートする明白な方法もありません。

(私の特定のユースケースは長いパイプラインのトラブルシューティングですが、他にもあります)

何か不足していますか?

18
Andrew

実行するコマンドの前にechoを置きますか?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e
16
ilkkachu

-pまたは-tフラグ。

xargs -pまたはxargs --interactiveは、実行するコマンドを出力してから、コマンドを実行する前に確認のために入力を求めます(y/n)。

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -tまたはxargs --verboseは、各コマンドを出力し、すぐに実行します。

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two
35
Kevin Hencke