[16] ファイル名には特別扱いされるものがあります。 ファイルシステムやプラットフォームの仕組み上の特殊な名前もあれば、 特定のアプリケーションに限定されるものや、 仕組み的な特殊性はないものの慣習が存在するものなどいろいろあります。
[1] Unix では .
から始まるファイル名は隠しファイルを表す慣習となっています。
[12] ここから派生して、ホームディレクトリー下に .
から始まりアプリケーション名等が続くディレクトリーやファイルで設定ファイル、
一時ファイル等を配置する慣習があります。
[2] Unix ではディレクトリーに特別なディレクトリー
.
、..
が自動作成されます。
[3] 標準入出力を表すために -
が使われることがあります。
[4] シェルの多くは ~
を自身のホームディレクトリーに、
~
+ ユーザー名を当該ユーザーのホームディレクトリーに展開します。
[5] エディターがバックアップを自動作成する場合、
元のファイル名の末尾に ~
をつける慣習があります。
[13]
一般的なファイルは小文字の名前を与え、
README
, LICENSE
, Makefile
等目につかせたいファイルに大文字の名前を与える慣習があります。
ls
等で整列して表示されたときにまとまって表れてわかりやすいためと説明されています。
[25]
Unix のプログラムの多くは -
から始まる引数をオプションの指定と解釈します。
--
(Unix) も参照。
[26]
Unix では NULL
(0x00) をファイル名に含められません。
[28]
Unix では /
をファイル名に含められません。
[27] Unix ではファイル名はバイト列として扱われます。 プログラム次第、ロケール次第で UTF-8 などの文字コードと解釈されます。 結果として特定のプログラム (や特定のロケール指定) で扱えない文字コードを含むファイル名が存在してしまうことがあります。
[29]
シェルは空白をコマンドライン引数の区切り、
\
を escape と解釈します。
$
, "
, '
その他も解釈されることがあります。
[20] ショートカット (.lnk
や .url
や .pif
や
.scf
など)
はエクスプローラーを拡張子表示モードにしても、
拡張子が隠されて表示されます。
[21] SCF
ファイルはエクスプローラーでフォルダー表示時に処理されます。
[18] desktop.ini
はエクスプローラーの機能の指定に使われます。
Windows やエクスプローラーにとって意味のあるフォルダーに自動的に作られますし、
関係する個別設定を変更したフォルダーにも作られます。
[23] Thumbs.db
はエクスプローラーの縮小表示のキャッシュデータです。
縮小表示したフォルダーに自動的に作成されます。
[19]
({
, }
で囲んだ)
CLSID を拡張子とするフォルダーはエクスプローラーで特別に表示されます。
[15] Windowsの「God Mode」を悪用して実行ファイルを隠蔽するマルウェア、名前に予約語を使って削除も回避 | スラド セキュリティ, https://security.srad.jp/story/16/05/03/0737226/
[43] ファイルでもフォルダーでも、 ASCII文字の記号は拡張子に使わないのが無難です。
[36] ドライブ直下の autorun.inf
は媒体の挿入時に自動的に実行する操作を記述するファイルです。
[22] 8-1. Windowsパス名の落とし穴 () https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b08_01.html
[30]
~
と整数は自動的に割り当てられる短いファイル名で使われます。
[37]
%
は元々MS-DOSで環境変数の前後区切子でしたが、
Windowsでファイルのパスを指定する一部の文脈で特別なフォルダーを参照するための構文に使われています。
しかしながら%
は普通のファイル名に使える文字でもあります。
[39]
:
はドライブ名や代替データストリーム名の区切りに使われますので、
ファイル名自体には使えません。
[38]
Windows ではファイル名が1文字のとき、ドライブ名と曖昧になることがあります。
絶対パスにするか、 .\
を前につけて回避できます。
[7] Unix 同様に .
や ..
をディレクトリー名として使えます。
Windows 95 以降、アプリケーションによっては ...
など .
を更に加えて上位階層を表すことができます。
[31]
Windows のエクスプローラーは .
から始まるファイル名に変更することを受け付けません。
Windows として禁止しているわけではないので、他の方法で作ることはできますし、
エクスプローラーもファイル名変更以外は通常のファイル名のように扱えます。
[6] RCS は元のファイル名に ,v
をつけたファイル名をバージョン管理に使います。
[44] CVS: CVS/
,
Subversion: .svn/
,
Mercurial: .hg/
,
Bazaar: .bzr/
,
Fossil: .fslckout/
, _FOSSIL_
,
Plastic SCM: .plastic/
[32] ファイル名として特別な意味を持たないような文字列(片)のことをファイル名安全であるということがあります。
[34] 本記事各項からわかるように、ファイル名安全といえる条件はプラットフォームによっても、 応用によっても異なります。