asciiの並びでは、「-」は数字やアルファベット、「/」や「.」よりも前、「_」は数字やアルファベット大文字より後ろでアルファベット小文字より前、という特性がある。
!"#$%&'()*+,-./0(略)9:;<=>?@A(略)Z[\]^_`a(略)z{|}~
そのため、あるものに追加して属性を書く目的では、「-」よりも「_」が適している。何を言おうとしているのかというと、以下の2つのファイルがあるとすると、
- 01234.jpg
- 01234-1.jpg
名前でソートしたときの並び順が
- 01234-1.jpg
- 01234.jpg
である。「.(ドット)」よりも「-(ハイフン)」が前にあるためだ(拡張子を特別扱いするような面倒なソート方式を使っていれば別)。そのため、「_0」しかないときでも省略することができない。これが「-」ではなく「_」なら、
- 01234.jpg
- 01234_1.jpg
という順番になり、「_0」を省略しても構わないことになる。
今からasciiコードや拡張子の区切り文字を再定義できればなぁ…と思う人ってけっこういるんじゃないかな(「.」はもっと前にあるべき文字だよ…)。でも実現できるもんではないので、我々はあるものに合わせていくしかない。