パソコン悪戦苦闘記録

「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
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「Ubuntu」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事