この人頭いいなと思ったエピソード

自分はSolaris7(8)を使用しているのですが、grepが
/bin/grep
/usr/bin/grep
/usr/xpg4/bin/grep
の3つ存在しています。動作的には前者2つが同じようで、最後者がちょっと拡張されているように思われます。思うに大きな違いは"-f|-e"(ファイルにマッチすべき文字列を書いておくことが出来る)が大きいと思うのですが、そこで、

1) /xpg4 というdirectoryはどのような意味合いを持っているのでしょうか?どのような括りでこのディレクトリがあるのでしょうか?

2) 上に書いたオプションの違いのほかに、両者にはどのような違いが有るのでしょうか?

3) 通常、UNIXのユーザーは/usr/bin/grepがデフォルトで使っているというのが「正しい」と思うのですが、後者(xpg4)がデフォルトとして使われる場合にはどのようなケースがあるのでしょうか?


--[参考]--

/usr/bin/grep [ -bchilnsvw ] limited-regular-expression [filename ... ]

/usr/xpg4/bin/grep [-E | -F ] [-c | -l | -q ] [ -bhinsvwx ] -e pattern_list ... [ -f pattern_file ... ] [ file ... ]

----------

宜しくお願いいたします。

A 回答 (2件)

No.1 の回答で触れられていない /bin/grep と /usr/bin/grep について。



/bin は /usr/bin のシンボリックリンクになっているはずです。なので、
/bin/grep と /usr/bin/grep は、同じものです。

% uname -a
SunOS CRT1 5.8 Generic_108528-08 sun4u sparc SUNW,Ultra-5_10
% ls -ldi /bin /usr/bin
4 lrwxrwxrwx 1 root root 9 7月 26日 2001年 /bin -> ./usr/bin
105408 drwxr-xr-x 3 root bin 10752 7月 19日 18:54 /usr/bin
    • good
    • 0

XPG4は、「X/Open Portability Guide issue 4」の略で、これに準拠したコマンドが、そこに置いてます。



デフォルトでどっち使っているかは環境変数PATHかaliasのよるんで、一概にはどっちとは言えないでしょう。
標準に従うなら、/usr/xpg4/binの方が先に来るべきかと。

参考URL:http://docs.sun.com/?l=ja&q=xpg4&p=/doc/816-3328 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報