隠しファイルが存在する理由、実はバグだった説

名前に . をつけたファイルだけ、そっと物陰へ。バグ由来のかくれんぼ
名前に . をつけたファイルだけ、そっと物陰へ。バグ由来のかくれんぼ

ls -a で表示される . から始まるファイルたち。なぜドットをつけると隠しファイルになるのか? 実はこれ、Unixの初期のバグが定着したという説が有名です。Unix の作者たちと働いていた Rob Pike によれば、ディレクトリに .(カレントディレクトリ)と ..(親ディレクトリ)が加わったとき、それを ls の表示から外すために「. で始まる名前はスキップする」という手軽な判定が入った。ところがこれが、. で始まるすべてのファイルを巻き込んで非表示にしてしまった。

意図しない動作だったが、設定ファイルを普段の表示から隠せるので、そのまま使われ続けた。Pike 本人は「間違いだった。ホームディレクトリが設定ファイルで散らかる原因になった」と振り返っている。それでも「. で始まるファイルは隠しファイル」というルールがUnixの慣習として定着し、macOSやLinuxに今も受け継がれています。 バグが機能になり、機能が文化になった。

ソフトウェアの歴史は、こういう偶然の積み重ねでできています。