Windows上のファイル/フォルダー名の前にドットが付いているのはなぜですか?


34

たとえばMy Documents、には、次のフォルダーがあります。

.ssh
.subversion

これは私が知らない命名規則の一種ですか?

回答:


94

この命名規則は、Unixに似たオペレーティングシステム(LinuxやOS Xなど)に由来し、「隠された」ファイルまたはディレクトリを意味します。どこでも動作しますが、その主な用途は、ホームディレクトリ内の構成ファイルを非表示にすることです(たとえば~/.cache/~/.plan「ドットファイル」と呼ばれることが多い)。

ドットファイルは、ある意味では、Windowsの「AppData」ディレクトリに相当する従来のUnixと呼ばれます。(多くのLinuxプログラムは、XDGベースディレクトリ仕様に従うように変更されており、設定を~/.config/他のデータに~/.cache/&に移動しています。~/.local/share/これにより、AppData\Roamingandに少し似ていAppData\Localます。)

Windowsにこれら.ssh.subversionディレクトリがあるのは、POSIXの代わりにWindowsシステムAPIを使用するように移植されたいくつかのプログラム(具体的にはOpenSSHSubversion)を使用したためです。

WindowsシステムでCygwinなどのUnixライクな環境を使用する人々の生活を楽にするために、この適応が意図的にスキップされる場合があります。たとえば、Cygwin lsは、Windowsの「非表示」フラグを無視し、.dotfile名前のみを尊重するなどのUnixライクなツールの標準セットをインストールします。また、同じ場所(例:)を使用すると、<home>/.sshWindowsとLinux / BSD / OSXコンピューター間で構成を簡単に同期できます。

また:通常、これらのファイルはユーザーのホームディレクトリ(Linux、Windows 7 以降など)にあります。それらが「ドキュメント」または「マイドキュメント」サブディレクトリに配置されることは非常にまれです。/home/name/.sshC:\Users\name\.ssh


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

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

if (name[0] == '.') continue;

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

if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

しかし、ちょっと、それは簡単でした。

二つのことが起こりました。

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

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


ありがとうございました!非常に徹底的です。「C:\ users \ <username> \」フォルダーで、Windows PowerShellで「ls」コマンドを使用し、Cygwinターミナルで再度使用しました。PowerShellはドットファイルをリストし、AppDataを非表示にしますが、Cygwin Terminalはまったく逆の操作を行います。面白い!CygwinはUnix規則を使用しています。
ニコベリック

@NikoBellic:Unix / Cygwinにlsは、-aすべてのファイルをリストするオプションがあります。
悲しみ

1
@Ruslan:たとえば:VMSには隠しファイルがまったくありませんでした。LOGIN.COMまたはDECW$MAIL.DAT ホームディレクトリのようなものになってしまいます。(当時、他のどのシステムが人気があったのかはわかりません。)Unixは最近作成されたばかりです。規約はまったくありませんでした。
悲しみ

2
@grawity MS-DOS 1.0は、Digital Researchが行ったDECスタイルのO / Sであり、当時Unixビジネスに従事していたMicrosoftが購入しました。MS-DOS 2.0以降では、階層ファイルシステムと..、「up dir」などのUnix規則の一部が追加されました。Microsoftは、実際にこれらの「高度なUnix機能」を宣伝しました。
フレッドフー

1
@grawityああ、それはシアトルのコンピューター製品で、DRIのCP / Mを複製しました。ごめんなさい。しかし、私のポイントは、マイクロソフトが80年代前半のUnixショップであり、DECシステムだけが出発点ではなかったことです。(UnixはもともとDECハードウェアで実行されていましたが、DEC OSよりもCTSSとMulticsの影響が大きかったと思います。)
フレッドフー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.