web-dev-qa-db-ja.com

名前がドットで始まるディレクトリの何が特別なのですか?

これら2つの違いは何なのかと思っていました。

~/somedirectory/file.txt

そして

~/.somedirectory/file.txt

.を説明する方法がわからなかったため、Googleでこれを尋ねるのは非常に困難です。しかし、誰かがドットを含めることと除外することの違いを説明できますか?

26
Dark Templar

UNIXライクなシステムでは、すべてのディレクトリに2つのエントリ .および.. が含まれ、それぞれディレクトリ自体とその親を表します。これらのエントリはほとんどの場合面白くないので、lsはそれらを非表示にし、*のようなシェルワイルドカードはそれらを含めません。より一般的には、lsとワイルドカードは、名前が.で始まるすべてのファイルを非表示にします。これは、...を除外し、ユーザーが他のファイルをリストに表示しないようにする簡単な方法です。リストから除外されることを除いて、これらのファイルについて特別なことは何もありません。

Unixは、ユーザーごとの構成ファイルをユーザーのホームディレクトリに格納します。すべての構成ファイルがファイルリストに表示されると、ホームディレクトリは、ユーザーが毎日気にしないファイルでいっぱいになります。したがって、構成ファイルは常に.で始まります。通常、アプリケーションFooの構成ファイルは、.fooまたは .foorc のように呼ばれます。このため、ユーザー構成ファイルはdot filesとしてよく知られています。

ドット.で始まるディレクトリは非表示と見なされます。つまり:

  • ~/somedirectory~/.somedirectoryは異なるディレクトリです。つまり、~/somedirectoryが存在し、mkdir ~/.somedirectoryを実行した場合、File Existsメッセージで失敗することはありません。

  • lsコマンドは、.で始まるディレクトリを表示しません

  • ls -aは両方のディレクトリを表示します

15
Tom

Unixファイルシステムの詳細については 標準を確認してください 。具体的には、ドットファイルはユーザーディレクトリの構成ファイルに使用され、プログラムに複数ある場合は、ドットディレクトリに配置する必要があります。

これは、ユーザーがファイルを検索したくない場合を除いて、ユーザーからファイルを隠します。そうすれば、彼らが邪魔をしたり、ツールが誤ってそれらに干渉したりすることはありません。

7
Spencer Rathbun

先頭の「。」ディレクトリまたはファイル名にlsコマンドを実行すると、そのディレクトリまたはファイルが非表示になります。

4
DaveNay

@DaveNayがすでに述べたように、その期間はファイルまたはディレクトリを非表示にします。

2番目の暗黙の質問の場合、これはGoogleでそれを検索する方法です。

検索ボックスに次のように入力するだけです:名前の前のLinuxピリオド

2
AJC