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


17

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

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

何か不足していますか?


まさにあなたがやろうとしていることは何ですか?
ラーフル

回答:


16

入れてecho実行するコマンドの前に?

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

5
(もちろん、これは些細なケースで機能する単純なソリューションです。パラメータにスペースまたは制御文字が含まれている場合、出力はあいまいになります。受け取ったパラメータを明確に印刷する専用ツールが必要です。)
ilkkachu

ドライランをしようとしている場合はどうechoですか?:)
mbigras

31

-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

1
両方-p-tオプションの素晴らしい答え。優れた例。ありがとうございました!
JCotton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.