[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:28568] Re: man .



友國です。

>>>>> In [debian-users : No.28563] 
>>>>>	"TT" == Tetsuo Tomokuni <tomokuni@xxxxxxxxxxxxxx> wrote:

TT> 友國です。

KH> 予想ですが、“-l”オプションをつけたときと同じ動作をしてるのでは
KH> ないでしょうか。

TT> 今気がついたのですが、例えば hoge.txt というファイルなら

TT>   $ man ./hoge.txt
TT>   hoge.txt を再フォーマットしています。しばらくお待ちください...

TT> というふうになりますが、 "." は

TT>   $ man .
TT>   .(1) を再フォーマットしています。しばらくお待ちください...
TT>    ^^^
TT> となるので違うことをしてるのだと思います。

喜瀬さんに指摘されていたので、もう一度 man man で調べましたら、

       -l, --local-file
              `local' モードを有効にする。システムのマニュアル ペ
              ー ジから検索する代わりに、ローカルなマニュアルファ
              イルを整形して表示する。マニュアルページの 引 き 数
              は、正しいフォーマットの nroff ソースファイルである
              とみなされる。 cat ファイルは生成されない。 `-'  が
              引 き数に指定された場合は、標準入力から入力が与えら
              れるとみなされる。このオプションが指定されていな く
              て、 man が要求されたページの検索に失敗した場合は、
              エラーメッセージを表示する前にこのオプションが指 定
              さ れていた場合の動作を試みる。このとき、マニュアル
              ページ名は厳密に一致するファイル名とみなされる。

ということだったので、いろいろやってみました。


まず hoge.txt というファイルの場合。

(1-a)
  $ man hoge.txt 
  マニュアル hoge.txt は登録されていません
(1-b)
  $ man -l hoge.txt 
  hoge.txt を再フォーマットしています。しばらくお待ちください...
(1-c)
  $ man ./hoge.txt 
  hoge.txt を再フォーマットしています。しばらくお待ちください...

1-b と 1-c で同じ結果(内容が groff で整形されて出力)になります。

ところが、 "." の場合は

(2-a)
  $ man .
  .(1) を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(2-b)
  $ man -l .
  . を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(2-c)
  $ man ./.
  ./.(1) を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed

とそれぞれメッセージが変わります。(出力は何もファイルが見えます)

ちなみにディレクトリの場合は、

  $ cd /
(3-a)
  $ man /tmp/
   を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(3-a')
  $ man /tmp 
  tmp を再フォーマットしています。しばらくお待ちください...
(3-b)
  $ man -l /tmp/
   を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(3-b')
  $ man -l /tmp 
  tmp を再フォーマットしています。しばらくお待ちください...
(3-c)
  $ man tmp/
   を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(3-c')
  $ man ./tmp
  tmp を再フォーマットしています。しばらくお待ちください...

と最後に "/" がついているかどうかで違ってくるようです。
出力は 2 の場合と同じく何もファイルが見えます。

更に ".." ですが、

(4-a)
  $ man ..
  マニュアル .. は登録されていません
(4-b)
  $ man -l ..
  .. を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
(4-c)
  $ man ./..
  .. を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed

と 1 のファイルの場合と同じようです。

ものは試しだと思って "./" や "../" をやってみると、

  $ man ./
  ./(1) を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
  --Man-- 次は: ./(1) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ]

  $ man ../
  ../(1) を再フォーマットしています。しばらくお待ちください...
  input in flex scanner failed
  --Man-- 次は: ../(1) [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ]

と -a としているようになりました。
(ちなみに ".../" とかは

  $ man .../
  マニュアル .../ は登録されていません

でした。)

何か "." 絡み("./" や "../" も含む)で何かおかしな事になっている
のでしょうか?

  .~. ----------------------------------------
  /V\     友國 哲男 (TOMOKUNI Tetsuo)
 // \\    E-mail: tomokuni@xxxxxxxxxxxxxx
/(   )\           tomokuni@xxxxxxxxxxxxx
 ^`~'^    http://www.netfort.gr.jp/~tomokuni/