lsコマンドで.(ドット)と..(ドットドット)はなぜ表示されるのか

lsコマンドで-aオプションを付けて実行すると、以下のようにフォルダの中に

  • .
  • ..

という記号が表示されます。

 

...がそれぞれ

  • .:カレントディレクトリを指す
  • ..:上位(親)ディレクトリを指す

というのは知っていたんですが、「なんでフォルダの中にこの記号が表示されるんだ・・?」と疑問に思っていました。

というのも、このような概念はUNIX/LINUXの世界では「りんごを落とすと重力で落ちる」レベルの根幹的なものなのだから、「わざわざ表記する必要すらなくね?」と思ったからです。

 

そんなわけで「まぁさすがにこんなクソな疑問を持つのは私だけだろうな」と思ったわけですけど、一応ググってみたら

なんと!!同じ疑問を持っている人がいた!!↓

`ls -a` はなぜ `.` や `..` を表示するんでしょう?

 

ここに書かれていることをザックリまとめると

  • ...は実際に存在するディレクトリで、フォルダが作成される際に自動的にそのフォルダの直下に作成される「ハードリンク」である
  • 推測だけど、ls -aの当時の位置づけとしては「ほぼ使わないけれど、. .. というショートカットが確かに存在することを示すのに使うオプション」レベルの存在だったのかもね

って感じらしい。

 

うーん・・、素人ながら

「わざわざハードリンクという実体を作らなくても、...を指定すると「カレントディレクトリなどを指すんだよ」というルールをUnix/Linuxのシステムの根幹で決めておいたらよかったんじゃないの・・?」

って思ってしまうんだけど、まぁ天才たちがそういう風に決めたんだから何か理由があるんでしょうね・・。

 

おわり

Linux
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
元アフィリエイターなWEBエンジニアです。うんちコードなら書けます。
お仕事あれば下さい。カジュアル面談も気軽に誘って下さい。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました