findutilsマニュアルから:
xargs [option...] [command [initial-arguments]]
異なるパラメータシーケンスを使用して複数回xargs
実行するのは正しいですか?command
それでは、そのようなコマンドは、コマンドに適用される引数の順序が次のようになることを満たす必要があるという意味ですか?実際に
パラメータシーケンスをサブシーケンスに分割し、
別の実行で各パラメータのサブシーケンスでコマンドを実行しますか?
mycommand
たとえば、次のように実行できる場合はxargs
正しいですか?
mycommand arg1 arg2 arg3
実際に関係があるはずです。
mycommand arg1
mycommand arg2 arg3
上記の条件が注文の実行に必要で十分ですかxargs
?
上記の条件を満たさない命令がありますか? (見つかりません。)もしそうなら、実行は可能ですかxargs
?
渡されるパラメータは、オプション、オプションパラメータ、またはオプション以外のパラメータなど、任意の種類のパラメータにxargs
できますか?command
この質問は上記の質問に答えるのに役立つと思います。
それでは-i
どうなりますかxargs
?
ありがとうございます。
ベストアンサー1
xargsがそれぞれ異なる引数シーケンスを使用して複数回実行してコマンドを実行すると思うのは正しいですか?
xargs
はい(もちろん入力が繰り返されない限り)
mycommand arg1 arg2 arg3
実際に関係があるはずです。
mycommand arg1 mycommand arg2 arg3
xargs
一般に、私たちはリストがどこで分割されるのかわからないので、そうです。 GNU xargsを--show-limits
使用すると、すべての入力が単一のコマンド実行に適しているかどうかを確認できます。
もちろん、パラメータをセットとしてコマンドに渡す必要がある場合窒素、私たちはそれをある程度制御するために使用することができます(または-n N
-n M
中サイズいくつかの排水窒素)。
上記の条件を満たさない命令がありますか? (見つかりません。) もしそうなら、xargsで実行できますか?
Kusalanandaは、mv
最後のパラメータが他のパラメータとは異なる方法で処理されることが問題であると述べました。実際に追加されたパラメータはxargs
途中で行く必要がありますが、これを行う標準的な方法はありません。 (FreeBSD xargsは-J {}
これを行うことができ、GNUはオプションで引数リストの先頭にターゲットディレクトリを渡すmv
ことができます。)-t dir
cp
これにより、(作成)が実行されるたびにアーカイブが上書きされるため、このような操作はtar -czf foo.tar.gz
機能しません。代わりに(append)を使用するとこれを-c
回避できますが、少なくともGNU tarは圧縮アーカイブに追加することをサポートしていません。-r
-c
幸いなことに、ほとんどのユーティリティはファイルごとに機能し、最後にファイルのリストを受け入れるように設計されています。
xargsコマンドに渡される引数は、オプション、オプション引数、または非オプション引数など、任意の種類の引数にできますか?
それらは単なる文字列であり、xargs
それが何を意味するのかわかりません。一般的なファイルのリストを許可しないが、同様の入力を取得する-f filename
オプションを使用するユーティリティがある場合は、それを喜んで渡します。サイズ制限は大きな入力にもかかわらず、aとファイル名を再分割する可能性がありますが、これを追加すると、これが発生する可能性が低くなります(ファイル名の長さと実際のサイズ制限によって異なります)。xargs
-f file1 -f file2 ...
-f
-n 100
xargsの-iが関連付けられている場合はどうなりますか?
-i
GNUでは、xargsはと同じで、やや退屈に、-I {}
各xargs
入力引数に対してコマンドを一度実行します。コマンドの途中にパラメータを入れる必要がある場合は役立ちますが、コマンドの呼び出し回数を減らすのには役に立ちません。