つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

「awk」は「gawk」へのシンボリックリンク。知らなかった

 今、PCでのテキスト処理ツールawk(オーク)を、絶賛勉強中です。

 私は、計2台のノートPCにUbuntu_Linuxを入れています。
1台の方が、
   Oracle VM VirtualBox 上に
   Ubuntu 22.04LTS
もう片方は、
   WSL(Windows Subsystem for Linux)2 上に
   Ubuntu 22.04LTS
です。





 先日、
  VirtualBox 上のUbuntuには、「mawk」が、
  WSL2 上のUbuntuには、「gawk」が、
それぞれ入っている、という記事を書きました。

 その記事は、
  こちら⇒ 同じUbuntuなのにawk処理系が異なる


 ところが、その記事に対し、ある方からコメントをいただきました。
 「mawk」と「gawk」の両方が入っているのでは?っていう内容です。
 んで、調べてみたら、確かにそうでした。
 2台のPC双方に、「mawk」も「gawk」も入っていました。

 コマンドが入っているかどうかを確認するのに使ったのは、「which」というコマンドです。
 書式は、 which [オプション]<コマンド名> です。

 whichコマンドは、指定されたコマンド名を探し、見つかった実行ファイル(コマンド)のフルパスを表示します。もし、その実行ファイル(コマンド)がないときは、何の反応もないので、それで判断できます。
 なお、異なるディレクトリに同じ名前のコマンドが複数あるときは、「-a」オプションを指定すると、すべての実行ファイルの場所を表示してくれます。

 んで、調査の結果は、次のとおりです。

goosyun@hoge:~$ which -a awk
/usr/bin/awk
/bin/awk

goosyun@hoge:~$ which -a gawk
/usr/bin/gawk
/bin/gawk

goosyun@hoge:~$ which -a mawk
/usr/bin/mawk
/bin/mawk

 このように、「mawk」も「gawk」も入っているではありませんか。

 次に、それぞれのファイルの、リンクの関係を調べてみました。
 「-l」オプションを付けて「ls」コマンドを実行すると、リンクが貼られている場合のリンク先が分かります。

goosyun@hoge:~$ ls -l /bin/*awk
lrwxrwxrwx 1 root root 21 11月 23 2023 /bin/awk -> /etc/alternatives/awk
-rwxr-xr-x 1 root root 704984 8月 17 2023 /bin/gawk
-rwxr-xr-x 1 root root 158504 1月 24 2022 /bin/mawk
lrwxrwxrwx 1 root root 22 11月 23 2023 /bin/nawk -> /etc/alternatives/nawk

goosyun@hoge:~$ ls -l /usr/bin/*awk
lrwxrwxrwx 1 root root 21 11月 23 2023 /usr/bin/awk -> /etc/alternatives/awk
-rwxr-xr-x 1 root root 704984 8月 17 2023 /usr/bin/gawk
-rwxr-xr-x 1 root root 158504 1月 24 2022 /usr/bin/mawk
lrwxrwxrwx 1 root root 22 11月 23 2023 /usr/bin/nawk -> /etc/alternatives/nawk

 上記のとおり、「/bin/awk」と「/usr/bin/awk」は、 「/etc/alternatives/awk」へのシンボリックリンクになっていました。

 そこで、さらに「/etc/alternatives/awk」のリンク先を調べてみました。
goosyun@hoge:~$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 11月 23 2023 /etc/alternatives/awk -> /usr/bin/gawk

 このように、おもしろい結果が出てきました。
 なぁ~んと、
  awk」は、「gawk」へのシンボリックリンクになっているのです。

 そうすると・・・、
 「awk」コマンドを実行するということはつまり、全く意識はしていなかったけれども、実は、「gawk」を実行していた、ということになります。
 そういうことになるのではないでしょうか。へぇ、これは知らなかったぁ。

 どうして、上記のような回りくどいリンクを貼っているのか、なぜ、ぐるぐるといくつものリンク先をたどる必要があるのか、その辺の事情は素人なので分かりません。
 まぁ、そのことを知らなくても、使う分に支障はありません。今後も、便利に「awk」を使わせてもらうこととします。





それでは、また次の記事で。
goosyun