隠しファイルとは?Unixのドットファイル
Unixにおける隠しファイルとは、単に名前がドットで始まるファイルのことで、慣例によりデフォルトのディレクトリ一覧から隠されます。
Unix系システムには特別な「隠し」属性はありません。ファイルは名前がドットで始まるという理由だけで隠されます。これらのドットファイルは設定を保持しており、CIのリポジトリはそれらであふれています。.gitignore、.github、.env などです。この慣例を知っていれば、ls が時にファイルを見逃すように見える理由や、globがそれらをスキップし得る理由が分かります。
ファイルを隠すもの
ファイル名の先頭のドットがすべてです。config は表示され、.config は隠されます。ツールは単に、デフォルトの一覧でドットで始まる名前をスキップするだけで、これはセキュリティ機能ではなく慣例です。
隠しファイルを見る
ls -a を実行すると、ドットファイルを含むすべてのエントリが表示されます。-a がないと一覧はそれらを省略するため、設定ファイルが欠けているように見えても、実際は単に隠されているだけということがあります。
リポジトリでよく見るドットファイル
.gitignoreはGitが無視すべきファイルを列挙します。.github/はworkflowとリポジトリ設定を保持します。.envはローカルの環境変数を保持します。.dockerignoreはDockerのbuildコンテキストからファイルを除外します。
globとドットファイル
素の * はデフォルトではドットで始まる名前にマッチしないため、cp * dest/ はドットファイルをスキップします。これは、プロジェクトをコピーして設定を静かに置き去りにする人を捕まえます。
CIにおける隠しファイル
CIの設定はドットファイルやドットディレクトリに存在します。ファイルをコピーまたはキャッシュするときは、* がそれらを除外することを忘れないでください。.github、.env などのファイルが含まれる、または正しく無視されるように、明示的なパターンやオプションが必要になることがあります。
マネージドrunnerでの設定ファイル
Latchkeyのrunnerでは、ドットファイルは他のLinuxシステムと同じように振る舞います。ステップがbuildコンテキストをコピーするときは、.next のようなドットディレクトリや設定ドットファイルを明示的に扱い、重要なものが静かにスキップされないようにしてください。
重要なポイント
- 隠しファイルとは、単に名前がドットで始まるファイルのことです。
ls -aは、デフォルトの一覧が省略するドットファイルを表示します。*globはドットファイルをスキップするため、コピー時にCI設定を静かに落とすことがあります。