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

Back to archive index

Akihiro MOTOKI amoto****@gmail*****
2011年 1月 19日 (水) 22:54:21 JST


元木です。

すでに新しい翻訳の方を投稿頂いていますが、
こちらのメールの方につなげます。

At Sat, 15 Jan 2011 18:39:26 +0900 (JST),
長南洋一 <cyoic****@maple*****> wrote:
> 
> 長南です。
> 
> 元木さんのメールより [JM:00105]
> > 
> > > まず、引用は省略しますが、「説明」の最初のパラグラフが、自分でも
> > > いまいち気に入っていません。「xargs は、コマンドラインが
> > > 長くなりすぎるときは、標準入力から受け取った引き数を分割して
> > > 実行する」ということを、ここで言っておいた方がよいと思うのです。
> > > そうでないと、「コマンドを一回以上実行する」という説明がちょっと
> > > 唐突になりますし、「コマンドラインが長すぎてエラーになることがない」
> > > というのが xargs の売り物の一つなんでしょうから。でも、そのために
> > > くどい文章になってしまいました。もっとすっきりした案があったら、
> > > お教えください。
> > 
> > これは難しいですね。
> > 意訳に近いですが、こんな案を考えてみました。
> > 長南さんが書かれているように、訳注があった方が
> > ぐっと分かりやすくなると思いました。
> > 
> >   xargsは、空白や改行で区切られた一連の項目群を標準入力から読み込み
> >   (空白はダブルクォート、シングルクォート、バックスラッシュによって
> >   保護できる)、読み込んだ一連の項目群を引き数にして、指定した command を
> >   実行する (デフォルトのコマンドは/bin/echoである)。
> >   (コマンドライン長の上限を越える場合や、オプションによる特別な指定が
> >   ある場合は、項目群を適宜分割して command を実行するため)、
> >   指定した command が複数回実行される場合もある。
> 
> 「command を実行する」で切って、「一回以上実行する」の部分は、
> 補足説明として独立させるのですね。なるほど、よい案だと思います。
> ただ、カッコの中が長くて、本文が短いのは、美しくないというか、
> 読みにくいような気がします。
> 
> 思い切ってカッコをはずして、訳注を堂々と本文に組み込んでしまい
> ましょうか。
> 
>   xargsは、空白や改行で区切られた一連の項目を標準入力から読み込み
>   (空白はダブルクォート、シングルクォート、バックスラッシュによって
>   保護できる)、それを引き数にして、指定した command を実行する
>   (デフォルトのコマンドは /bin/echoである)。このとき、command に
>   対してユーザが指定した引き数 (上記書式の initial-arguments) が
>   あれば、標準入力から読み込んだ一連の項目は、その後ろに追加して行く。
>   形成されたコマンドラインがコマンドライン長の上限を越える
>   場合や、オプションによる特別な指定がある場合は、入力を適宜
>   分割して command を実行するので、指定した command が複数回
>   実行されることもある。標準入力における空行は無視される。
> 
> 「一連の項目群」となさったのは、読み込んだ項目を一個づつ command に
> 実行させるのではなく、まとめて command の引き数にするのが基本だ
> ということを強調なさりたかったからでしょうが、ちょっと重複した
> 言い方ではないかと思います。それで、「一連の項目」にして、
> 「追加する」を「追加して行く」に変更してみました。幾分あいまいに
> なったかもしれません。
> 
> あるいは、独立した「訳注」にする手もあると思います。

2 案を出していただきましたが、どちらもありかなと思います。
個人的な好みでは、強いていうと、上の方に一票入れておきます。

「一連の項目群」と「群」をつけたのは、複数であることを強調しようと
思ったのが理由ですが、かなりくどい、という点には同意します。

>   このとき、command に対してユーザが指定した引き数 (上記書式の
>   initial-arguments) があれば、標準入力から読み込んだ一連の項目は、
>   その後ろに追加して行く。

の部分ですが、「〜は、追加して行く」というのが主語/述語があっておらず、
気持悪いので、主語/述語をあわせて頂けると助かります。

[...]

> > > ここではセクション名に引かれて、「返り値」と訳しましたが、
> > > 「説明」セクションでは「終了ステータス」と訳していました。
> > > find のマニュアルを含めて、統一した方がよさそうです。
> > > 著者は exit status を使っていますから、セクション名だけ
> > > 「返り値」を残して、原則「(終了) ステータス」にしましょうか。
> > 
> > コマンドの場合には、返り値というよりは、exit code とか exit status
> > というのが普通ですね。セクション 1 はコマンドなので、章の名前も
> > 「返り値」でなく「終了ステータス」でもいいかなと思い始めました。
> > 
> > 私は、セクション 2 (システムコール) や セクション 3 (ライブラリ関数)
> > の manpage ばかり相手にして来たので、これまで気にならなかったようです。
> 
> こういう約束事はどこかに書いてあるのではないかと思って、あちこち
> 捜してみました。man 7 man-pages で見つけました。翻訳を始める前に
> 読んでおけばよかったと思います。元木さんがお訳しになったものだし、
> 引用する必要はないでしょうが、
> 
>   終了ステータス        [通常はセクション 1, 8 のみ]
>   返り値                [通常はセクション 2, 3 のみ]

ポインタを示していなくて、お手間をかけたようですね。すみません。

[...]

> 取り合えず、セクション名は「終了ステータス」にしておきます。

「終了ステータス」でいいかなと思います。

> > > -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 を使うように、実行するプログラムを
> > >   組み立てる方が望ましい。
> 
> 「怪我の功名」みたいですが、だいたいわたしの訳でよかったのですね。
> もう少し明晰にするなら、
> 
>   なるべくなら、xargs の --null を使うように、出力側のプログラムを
>   設計する方が望ましい。

感想ですが、個人的には
「組み立てる」よりは「設計する」の方がしっくり来ます。

-- 
Akihiro MOTOKI <amoto****@gmail*****>




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