/ /なぜいくつかのWindowsファイルとフォルダー名の前にドットがありますか?

一部のWindowsファイルおよびフォルダー名の前にドットが付いているのはなぜですか?

なぜいくつかのウィンドウファイルとフォルダ名がドットの先頭にあるのか

私たちのほとんどは通常のファイルとフォルダを見るだけですWindowsシステム上の名前、他の人はもう少し予期しないものに遭遇した可能性があります。ファイル名とフォルダ名の前にドットが付いています。なぜこれが起こるのですか?今日のSuperUser Q&A投稿には、非常に好奇心の強い読者の質問に対する答えがあります。

本日の質疑応答セッションは、コミュニティ主導のQ&A WebサイトのグループであるStack Exchangeの下位部門であるSuperUserのご厚意によるものです。

写真提供:Domiriel(Flickr)。

質問

スーパーユーザーリーダーのNiko Bellicは、Windowsファイルとフォルダー名の前にドットが付いている理由を知りたいと思っています。

たとえば、 私の文書 Windowsシステムのディレクトリには、次のフォルダーがあります。

  • .ssh
  • .subversion

これは私が知らない命名規則のようなものですか?

一部のWindowsファイルおよびフォルダー名の前にドットが付いているのはなぜですか?

答え

SuperUserコントリビューターの素晴らしさは、私たちに答えを持っています。

この命名規則は、Unixに似たオペレーティングシステム(LinuxやOSXなど)から来ています。 隠しファイル または ディレクトリ。どこでも動作しますが、主な用途はホームディレクトリ内の構成ファイルを非表示にすることです(つまり、 〜/ .cache /または〜/ .plan)彼らは頻繁に呼び出されます ドットファイル.

ドットファイル ある意味では、従来のUnixに相当する アプリデータ Windowsのディレクトリ。一方、多くのLinuxプログラムはXDGベースディレクトリ仕様に準拠するように変更されており、構成は 〜/ .config / その他のデータ 〜/ .cache / そして 〜/ .local / share /。これにより、より類似したものになります AppDataRoaming そして AppDataLocal.

あなたはこれらを持っています .ssh そして .subversion Windows上のディレクトリPOSIX APIではなくWindowsシステムAPIを使用するように移植されたプログラム(具体的にはOpenSSHとSubversion)ですが、他のWindowsの慣習に合わせて調整されていません。

時々、この適応はスキップされますWindowsシステムでCygwinなどのUnixライクな環境を使用する人々の生活を楽にするために。たとえば、Cygwinは次のようなUnixライクなツールの標準セットをインストールします。 ls、Windowsを無視します 隠された旗 そして唯一の栄誉 ドットファイル 名前。同じ場所で共有されている場合は、個々のWindowsとLinux / BSD / OSXコンピューター間で構成を同期するのも簡単です。

これらのファイルは通常、ユーザーのホームディレクトリにあります(つまり、 /home/name/.ssh Linuxまたは C:Usersname.ssh Windows 7以降)。それらが配置されることは非常にまれです 書類 または 私の文書 サブディレクトリ(結局、ドキュメントは含まれません)。

Rob PikeがGoogle+で書いているように、これは偶発的な機能でした。

ずっと前に、Unixファイルシステムの設計が練られていたので、エントリ . そして .. ナビゲーションを簡単にするために登場しました。よくわかりませんが、信じています .. ファイルシステムが階層構造になったバージョン2の書き換え中に導入されました(初期段階では構造が大きく異なりました)。入力したとき lsただし、これらのファイルが表示されたため、KenまたはDennisのいずれかが簡単なテストをプログラムに追加しました。それはアセンブラーにありましたが、問題のコードは次のようなものと同等でした:

  • if(name [0] == ‘。’)continue;

このステートメントは、本来あるべきものよりも少し短いものでした。

  • if(strcmp(name、“。”)== 0 || strcmp(name、“ ..”)== 0)continue;

しかし、それは簡単で、2つのことが起こりました。

まず、悪い先例が設定されました。他の多くの怠zyなプログラマーは、同じ単純化を行うことでバグを導入しました。ピリオドで始まる実際のファイルは、カウントする必要があるときにしばしばスキップされます。

第二に、さらに悪いことに、 隠された または ドットファイル 作成されました。 その結果、より怠laなプログラマーが全員のホームディレクトリにファイルをドロップし始めました。これを入力するために使用しているコンピューターにインストールされているソフトウェアはあまりありませんが、ホームディレクトリには約100個あります ドットファイル そして、私はそれらのほとんどが何であるか、またはそれらがまだ必要かどうかさえ知りません。ホームディレクトリを通過するすべてのファイル名の評価は、この蓄積されたスラッジによって遅くなります。


説明に追加するものがありますか?コメントで鳴り響きます。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらでディスカッションスレッド全体をご覧ください。