[JM:01997] [POST: DP] util-linux, whereis.1 の引き継ぎ

アーカイブの一覧に戻る
長南洋一 cyoic****@maple*****
2021年 1月 3日 (日) 16:54:47 JST


<STATUS>
stat: DP
ppkg: util-linux (2.36)
page: whereis.1
date: 2021/01/03
mail: cyoic****@maple*****
name: Chonan Yoichi
</STATUS>

明けましておめでとうございます。
三年越しになりますが、これも引き継ぎます。

○ DESCRIPTION の最初の段落全体を引用します。

     whereis locates the binary, source and manual files for  the  specified
     command  names.  The supplied names are first stripped of leading path‐
     name components and any (single) trailing extension of  the  form  .ext
     (for  example:  .c)  Prefixes  of s.  resulting from use of source code
     control are also dealt with.   whereis  then  attempts  to  locate  the
     desired  program in the standard Linux places, and in the places speci‐
     fied by $PATH and $MANPATH.

   翻訳は、一応こんなところです。

     whereis は、指定されたコマンド名について、 そのバイナリファイル、ソース
     ファイル、マニュアルファイルがどこにあるかを調べる。 whereis に渡された
     名前は、まず先行するパス名の部分が取り除かれ、 次に、末尾に .ext の形を
     取る拡張子 (たとえば、.c など) があれば、それも (ひとつだけ) 取り除かれ
     る。ソースコードコントロールシステム (SCCS) を使用したことによる s. と
     いう接頭辞への対処も行われる。whereis  は、それから、検索対象のプログラ
     ムなどを Linux の標準的な場所と、$PATH や $MANPATH  によって指定されて
     いる場所で見つけ出そうとする。

   "source code control" というのは、SCCS (Source Code Control System)
   のことですか。Wikipedia の "Source Code Control System" に、
   "SCCS files have a unique format prefix s., which is controlled 
   by SCCS commands." なんて書いてありましたから、きっとそうなんでしょうね。
   SCCS というのは、昔のバージョン管理システムと考えておけばよいのでしょうか。
   今で言えば、CVS とか git みたいな。

   「s. という接頭辞への対処」が具体的どういうことが分からなかったので、
   /usr/src に ls.c, ls.h, s.ls.c などを作って、試してみました。

     $ whereis s.ls.c
     s.ls:
     $ whereis -s -S /usr/src -f ls
     ls: /usr/src/s.ls.c /usr/src/ls.h /usr/src/ls.c

   s.ls.c というソースファイルも探しに行ってくれるということなんですね。
   そこで、上のような訳にしました。ちょっとわかりにくいと思ったので、
   ついでに、次のような訳注も付けておきました。

     [訳注]  「s. という接頭辞への対処」というのは、たとえば、ls の
             ソースファイルの探索を求められたとき、ls.c だけでなく、
	     s.ls.c といったファイルも捜しに行くようにするということ。

   前の訳では、この部分が、「ソースコード管理に使われている s. というプレフィックス
   がついたファイルも表示される」と訳されていました。"be dealt with" という言葉は
   場合によって色んな訳し方になる面倒な表現ですから、苦心の結果なのはわかりますし、また
   事実として全くそのとおりなので、表示の段階として解釈することも可能かもしれません。
   でも、すぐ次の文が "whereis then attempts to locate the desired
   program" なので、ここではまだファイルを探しに行く前の段階と取った方が、
   文章の流れからして自然だと思いました。そこで、上のような訳になったわけです。

   それから、原文の "to locate the desired program" というのも、かなり
   雑な表現ではないかと思います。バイナリはまさしくプログラムでしょうし、ソースも
   プログラムと言えば、プログラムでしょう。しかし、マニュアルをプログラムというのは、
   無理なのではないでしょうか。それで、「プログラムなど」とぼかしておきました。

   私がどこかで勘違いしているかもしれません。お気づきになったら、お教えください。

○ -u:

     Only  show  the command names that have unusual entries.
     A command is said to be unusual if it does not have just one
     entry of each explicitly requested type.  Thus 'whereis -m -u *'
     asks for those files in the current directory which have
     no documentation file, or more than one.

     検出結果が異例であるコマンド名についてのみ表示する。  ここで異例
     というのは、明示的に調査を要求した各タイプについて、検出結果がただ
     1 つではないことである。従って、'whereis -m -u *'  というコマ
     ンドは、  カレントディレクトリのファイルのうちで、文書ファイルが
     まったく存在しないか、2 つ以上存在するものを求めることになる。

     [訳注] この説明は古くなっているのではないかと思う。実際には、手元の
           util-linux  2.36  で  'whereis  -m -u *' を実行して
           も、文書ファイルのまったく存在しないものについては、何も
           表示されない。2 つ以上存在するものだけが表示される。

   上のような訳注を付けておきました。私が読み違いをしているのでしょうか。

例によって、添付ファイルの構成を書いておきます。

$ tar tzf whereis-2.36.tar.gz 
whereis-2.36/
whereis-2.36/po4a/
whereis-2.36/po4a/man1/
whereis-2.36/po4a/man1/whereis.patch
whereis-2.36/po4a/man1/whereis.po
whereis-2.36/original/
whereis-2.36/original/man1/
whereis-2.36/original/man1/whereis.1
whereis-2.36/draft/
whereis-2.36/draft/man1/
whereis-2.36/draft/man1/whereis.1

-- 
長南洋一
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: whereis-2.36.tar.gz
型:         application/octet-stream
サイズ:     7652 バイト
説明:       無し
URL:        <https://lists.osdn.me/mailman/archives/linuxjm-discuss/attachments/20210103/d4b5f107/attachment.obj>


linuxjm-discuss メーリングリストの案内
アーカイブの一覧に戻る