ls
コマンドで-a
オプションを付けて実行すると、以下のようにフォルダの中に
.
..
という記号が表示されます。
.
と..
がそれぞれ
.
:カレントディレクトリを指す..
:上位(親)ディレクトリを指す
というのは知っていたんですが、「なんでフォルダの中にこの記号が表示されるんだ・・?」と疑問に思っていました。
というのも、このような概念はUNIX/LINUXの世界では「りんごを落とすと重力で落ちる」レベルの根幹的なものなのだから、「わざわざ表記する必要すらなくね?」と思ったからです。
そんなわけで「まぁさすがにこんなクソな疑問を持つのは私だけだろうな」と思ったわけですけど、一応ググってみたら
なんと!!同じ疑問を持っている人がいた!!↓
`ls -a` はなぜ `.` や `..` を表示するんでしょう?
ここに書かれていることをザックリまとめると
.
と..
は実際に存在するディレクトリで、フォルダが作成される際に自動的にそのフォルダの直下に作成される「ハードリンク」である- 推測だけど、
ls -a
の当時の位置づけとしては「ほぼ使わないけれど、.
と..
というショートカットが確かに存在することを示すのに使うオプション」レベルの存在だったのかもね
って感じらしい。
うーん・・、素人ながら
「わざわざハードリンクという実体を作らなくても、.
や..
を指定すると「カレントディレクトリなどを指すんだよ」というルールをUnix/Linuxのシステムの根幹で決めておいたらよかったんじゃないの・・?」
って思ってしまうんだけど、まぁ天才たちがそういう風に決めたんだから何か理由があるんでしょうね・・。
おわり
コメント