ドットで始まるファイル名が隠されているのはなぜですか?最初の文字としてドットを使用せずにファイルを非表示にできますか?


15

最初は偶然だと思っていましたが、今ではタグあります。すべての隠しファイル名はドットで始まります。これは慣習ですか?なぜ選ばれたのですか?変更できますか?または、他の言葉で(関連する質問@evilsoupが他の多くの答えを暗示していると示唆したように):名前を変更せずにファイルを非表示にできます.か?(名前の最初の文字として使用します)?


または、必要に応じて、「すべての隠しファイル名がドットで始まるのはなぜですか」。
JMCF125

2
はい、これは慣習です。なぜ選ばれたのかは、UNIXの先駆者に尋ねてみてください。古い慣習です。
テルドン

4
履歴に関する詳細については、隠しファイルに関する関連ウィキペディアの記事plus.google.com/101960720994009339267/posts/R58WgWwN9jpご覧ください。変更することはできません。
ジョフェル

Linuxは完全にカスタマイズ可能であると思いました
...-JMCF125

1
@ JMCF125は実際、そのコメントは私が意図したよりも少し皮肉なものとして出てきました。「ファイル名を変更せずにファイルを非表示にできますか?」-その場合は、質問にそれを編集する必要があります。
evilsoup

回答:


26

ウィキペディアよると

ファイル名の前に。非表示にする必要があるのは、Unixの初期のソフトウェアバグの結果です。特別なエントリ...ディレクトリエントリがファイルシステムに追加されたとき、lsコマンドはそれらを表示すべきではないと判断されました。ただし、プログラムは、名前が.正確な名前.やでなく、文字で始まるファイルを除外するように誤って記述されています..

...そのため、バグとして始まり、機能として採用されました(記録の.ために、現在のディレクトリへ..のリンクであり、その上のディレクトリへのリンクですが、私はあなたがすでにそれを知っていると確信しています)。ファイルを非表示にするこの方法は、ほとんどの場合実際に十分であるため、Windowsスタイルのファイル非表示を実装することを誰も気にしていないと思います。

また、異なる動作を実装すると、* nixの世界でさらに多くの断片化が発生するという事実があります。

ファイルを非表示にする別の方法がありますが、名前を変更する必要はありませんが、GUIファイルマネージャーでのみ機能します(そしてそれらの間で普遍的ではありません-主要なLinuxのものはそれを使用しますが、OSXのFinderはそうしないと思いますニッチなLinuxファイルマネージャーは、この動作をサポートする可能性が低くなります.hiddenlsシェルグロブはこれを尊重しませんが、それでもあなたには便利かもしれません。


ただし、この非表示はUnityでは機能しません。ただし、すべての質問に直接対処したため、これを受け入れられた回答としてマークします(ただし、両方の回答を支持しました)。
JMCF125

3
ウィキペディアのページには、これに関する情報が含まれなくなりました。:しかし、ロブ・パイクは、ベル研究所のUNIX上で働いていたと話題についての短い記事を作っplus.google.com/u/0/+RobPikeTheHuman/posts/R58WgWwN9jp
アレクサンダー

OS X」ではなく「OS X」。
ピーターモーテンセン

14

ドットで始まるファイルは、コマンド「ls」によってデフォルトで無視されます。コマンドは「隠し」ファイルとほぼ同じ効果がありますが、同じではありません(他のコマンドは同じことを選択する場合もあります)。「hidden」は属性の1つではないため、ドットで始まるファイルは「hidden」ではありません。DOS / Windowsとは異なり、「非表示」はUnixの属性ではありません。Unixには多くの属性があります(「man chattr」はそれらすべてを教えてくれます)が、hiddenはそれらの1つではありません。

ドットファイルが「ls」によって無視される理由は、実際には非常に面白くて恥ずかしいです。これは設計上の決定ではなく、Unixの初期のソフトウェアバグの結果でした。特別なとき。および..ディレクトリエントリがファイルシステムに追加されたため、邪魔になっているため、lsコマンドはそれらを表示しないことが決定されました。ただし、プログラムは名前が。で始まるファイルを除外するように急いで作成されました。正確な名前「。」ではなく、文字 または「..」。そして、それはその後Unixで守られてきた先例を作りました。面白いことに、Unixの人たちがPlan 9の作成に進んだとき、彼らは意図的にドットファイルを入れませんでした


試しましたがman chattr、他の隠しファイルを可能にするためには、おそらくパッケージまたは特定のプログラムが必要だと思いました。
JMCF125

0

ファイルを非表示にできるかどうか、およびどのような条件に依存するかは、使用しているファイルシステムとそのドライバーに依存します。従来のUnixファイルシステムには、ファイルの「非表示」属性がありません。

ファイルシステムドライバーは、ディレクトリリストを取得するために使用されるシステムコールに結果を提供するときに名前を省略するだけで、必要なファイルを隠すことができます。セルグートが彼の答えで説明したように、ドットで始まるファイルは本当に隠されていません。

(これは、ルートキットがファイルを隠す方法でもあります。ディレクトリリスティングを生成するシステムコールにフックし、非表示にするファイルを除外します。)

たとえば、Oracle ACFSクラスタのファイルシステムでは、ディレクトリ<filesystem mountpoint>/.ACFS/は完全に非表示になりますls -a。まったく表示されず、でも表示されません。ただし、そこにあることがわかっている場合は、問題なくアクセスできます。

ACFSファイルシステムのスナップショット機能を使用している場合、その.ACFSディレクトリからそのファイルシステムの既存のファイルシステムスナップショットにアクセスできます。隠されていなかった場合、バックアッププログラムはファイルシステムの現在のコンテンツと既存のスナップショットのコンテンツの両方をバックアップしてしまう可能性があり、これはおそらく望ましくないでしょう。通常、現在の状態または特定のスナップショットの状態のいずれかをバックアップします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.