clock-up-blog

go-mi-tech

README のファイル名が大文字である理由

README のファイル名は慣習的にすべて大文字(であることが多い)

GitHub でプロジェクトを作るときに README を作成するオプションを入れておくと、README.md というファイルができる。それ以外の場所のプロジェクトでも README.txt や README など、ファイル名がすべて大文字になっているものをよく見かける。

なんか気持ち悪いなぁ、って思ってました。
readme でいいじゃん、と。

調べてみた

README - Wikipedia, the free encyclopedia
英語版 Wikipedia にそのままジャストな答えが書かれていました。

It is traditionally written in upper case so that on case-preserving environments using an ASCIIbetical ordering, the name will appear near the beginning of a directory listing (since upper-case letters sort before lower-case letters in ASCIIbetical ordering).

意訳するとこんな感じ。

伝統的に、README のファイル名には大文字が使われる。
ASCII文字コード順の整列を採用している環境では、このような名前のファイルは優先的にリスト上部に表示される。

ほぅほぅなるほど~~。
たしかにASCII文字コードでは大文字のほうが小文字よりも小さい値を持っているのだ。
ASCII - Wikipedia, the free encyclopedia

0x41 A   0x61 a
0x42 B   0x62 b
0x43 C   0x63 c
0x44 D   0x64 d
 
0x58 X   0x78 x
0x59 Y   0x79 y
0x5A Z   0x7A z

確認してみる

CentOS 6.5 Bash にて。

$ ls -1
abc.txt
hoge.txt
README
xyz.txt

あれ…? …どうやら並びは LANG に依存するらしい。

$ echo $LANG
en_US.UTF-8

en_US.UTF-8 でした。

LANG=C にしてみる

$ LANG=C ls -1
README
abc.txt
hoge.txt
xyz.txt

ASCII文字コード順になりました。
たしかに README という大文字のファイルが先頭に表示された。目立つ!

とりあえず理由のある慣習でした

別にこれの恩恵を受けることは僕個人としてはあまりありませんが、慣習が慣習として存在する理由を理解しておくと、心晴れやかに慣習に従うことができますね。