多くのクロスプラットフォームツールは、ディレクトリ名にピリオドをプレフィックスとして付けるUNIXの規則を使用して、それらがメタディレクトリであることを示し、ファイルリストやディレクトリ検索に含めるべきではありません。Windowsを構成して、先頭にピリオドが付いたディレクトリを、「非表示」属性が適用されているかのように処理する方法はありますか?
多くのクロスプラットフォームツールは、ディレクトリ名にピリオドをプレフィックスとして付けるUNIXの規則を使用して、それらがメタディレクトリであることを示し、ファイルリストやディレクトリ検索に含めるべきではありません。Windowsを構成して、先頭にピリオドが付いたディレクトリを、「非表示」属性が適用されているかのように処理する方法はありますか?
回答:
通常の方法ではできません。おそらくいくつかのソフトウェアで...
以下に、最良の方法ではなく、特定のケースに対して手動で行う方法を示します。どちらの場合も、Windowsエクスプローラー>ツール>表示モードで、隠し属性のファイルを非表示にする必要があります。
Dosコマンド(以下の各%文字を%%で置き換えるバッチを作成し、Windowsが起動するたびに、または必要に応じて初期化するために使用できます。隠しファイルを表示するが非表示にする場合は、「attrib + h + sシステムファイル;ファイルに適用する場合は、/ adパラメーターをdirから削除します):
for /f "delims=" %i in ('dir /s /b /ad ".*"') do attrib +h "%i"
Windows Search(Windows 7の場合、クラシック検索を有効にする必要があります):文字列「。*」を検索し、ディレクトリをマウスで右クリックして「非表示」をマークします(この方法を使用すると、システム属性を追加できません)
通常、Windowsではこれを実行できません。Windowsの隠しファイルは、名前の規則ではなく属性によって決定されます。それはちょうど石に設定されています。あなたが得ることができる最高のものは、GNUツールを使用することです。たとえばls、* nixと同じように動作します。
これがまったくできない理由は、Windowsでは、1つのピリオドが「現在のディレクトリ」を意味するためだと思います。したがって、。\ .. \ SiblingFolderは.. \ SiblingFolderとまったく同じ意味です。
.)は「現在のディレクトリ」を..意味し、2つのピリオド()は「親ディレクトリ」を意味します。ディレクトリのリストを作成するとき、通常、それらの「仮想」ディレクトリを非表示/無視します。しかし(少なくとも初期のUnixでは)実際には仮想ディレクトリではなく、ハードリンクであるため、他のファイルやディレクトリのような通常のファイルシステムエントリです。このlsコマンドは.、..デフォルトで非表示にしますが、名前が.(たとえば.foo)で始まる他のファイルまたはディレクトリも非表示にします。多くのUnixプログラムは、この機能を利用して、ユーザーのホームディレクトリにあるconfファイルを「隠し」ます。