[JM:00105] Re: [POST:DP] GNU_findutils xargs.1

Back to archive index

Akihiro MOTOKI amoto****@gmail*****
2011年 1月 13日 (木) 03:00:55 JST


もときです。お疲れ様です。

# any invocation ... は難しいので、それ以外のところです。

> まず、引用は省略しますが、「説明」の最初のパラグラフが、自分でも
> いまいち気に入っていません。「xargs は、コマンドラインが
> 長くなりすぎるときは、標準入力から受け取った引き数を分割して
> 実行する」ということを、ここで言っておいた方がよいと思うのです。
> そうでないと、「コマンドを一回以上実行する」という説明がちょっと
> 唐突になりますし、「コマンドラインが長すぎてエラーになることがない」
> というのが xargs の売り物の一つなんでしょうから。でも、そのために
> くどい文章になってしまいました。もっとすっきりした案があったら、
> お教えください。

これは難しいですね。
意訳に近いですが、こんな案を考えてみました。
長南さんが書かれているように、訳注があった方が
ぐっと分かりやすくなると思いました。

  xargsは、空白や改行で区切られた一連の項目群を標準入力から読み込み
  (空白はダブルクォート、シングルクォート、バックスラッシュによって
  保護できる)、読み込んだ一連の項目群を引き数にして、指定した command を
  実行する (デフォルトのコマンドは/bin/echoである)。
  (コマンドライン長の上限を越える場合や、オプションによる特別な指定が
  ある場合は、項目群を適宜分割して command を実行するため)、
  指定した command が複数回実行される場合もある。

[...]

> ここではセクション名に引かれて、「返り値」と訳しましたが、
> 「説明」セクションでは「終了ステータス」と訳していました。
> find のマニュアルを含めて、統一した方がよさそうです。
> 著者は exit status を使っていますから、セクション名だけ
> 「返り値」を残して、原則「(終了) ステータス」にしましょうか。

コマンドの場合には、返り値というよりは、exit code とか exit status
というのが普通ですね。セクション 1 はコマンドなので、章の名前も
「返り値」でなく「終了ステータス」でもいいかなと思い始めました。

私は、セクション 2 (システムコール) や セクション 3 (ライブラリ関数)
の manpage ばかり相手にして来たので、これまで気にならなかったようです。

> -d オプションの説明でも program という言葉が使われています。
> 
>   .\"O (省略)  This can be used when the input consists of simply
>   .\"O newline-separated items, although it is almost always better to design
>   .\"O your program to use 
>   .\"O .B \-\-null
>   .\"O where this is possible. 
> 
> この場合、design your program と言っていますから、program は
> xargs ではないでしょう。では、xargs の入力を生成するプログラム
> なのか。だとすると、そのプログラムが --null を使うというのが
> おかしくなります。--null は xargs のオプションなんですから。
> そこで、わたくしは、your program を xargs を含むコマンドライン
> (パイプラインというんでしたっけ) と考えて、次のように訳しました。

xargs への入力を生成するプログラムのことではないでしょうか。

xargs に対して、わざわざ -d delimiter のように特殊な区切り文字を
指定させるくらいなら、前段のプログラムの出力の区切り文字の方を工夫して、
受け側の xargs では --null オプションで対処できるようにした方が
いいだろう、と著者は言いたいのだと解釈しました。

>   入力が、項目を区切るのが改行のみであるような単純な構成の場合なら、
>   このオプションを利用してもよいが、ほとんどたいていの場合、
>   なるべくなら、xargs --null を使うように、実行するプログラムを
>   組み立てる方が望ましい。

それでは。
-- 
Akihiro MOTOKI <amoto****@gmail*****>




linuxjm-discuss メーリングリストの案内
Back to archive index