2024年2月1日木曜日

Windows ファイルのシステム属性と隠し属性の不思議な関係

Windows ファイルのシステム属性隠し属性の関係について興味深いことがあります。システム属性と隠し属性は、ファイルやフォルダの表示や操作に影響を与える重要な要素です。システム属性は、Windowsの動作に必要なファイルや設定を保護するために使用されます。一方、隠し属性は、ユーザーにとって不要なファイルやフォルダを非表示にするために使用されます。

興味深いことに、システム属性と隠し属性は同時に設定することができます。これは、特定のファイルやフォルダがシステムに必要であると同時に、ユーザーには表示されたくない場合に便利です。ただし、この機能を誤って使用すると、重要なファイルが見えなくなり、問題を引き起こす可能性がありますので、注意が必要です。

Windowsのファイルシステム属性と隠し属性の関係は、システムの安全性と利便性を両立させる重要な要素です。適切に理解し、使用することで、効果的なファイル管理が可能となります。

システム属性と隠し属性の基本

  • 隠し属性の付いたファイルのプロパティ。

  • システム属性のみ。

  • 隠し属性システム属性

単体でも両方でも属性を付けられるのを確認。

システム属性は attrib コマンドでのみ操作できます。

システム属性と隠し属性の不思議な関係

システム属性と隠し属性を追加するコマンド

attrib +s +h [ファイル名]

しかし、単純にはいきません。

  • 隠し属性の付いたファイルにシステム属性を追加するとエラー

    attrib +s

    隠しファイルは再設定できません

  • システム属性のファイルに隠し属性を付ける場合もエラー

    attrib +h

    システム ファイルは再設定できません

  • 反対に、システム属性と隠し属性が付いたファイルから一方の属性を外すのもエラー

    attrib -s or attrib -h

つまり、プログラムなどでシステム属性や隠し属性を付けようと attrib +s+h のみ指定するとエラーになる可能性があります。

これらのファイルにシステム属性や隠し属性を確実に追加するにはどうすればいいのか?

attrib +s +hattrib +s -hattrib -s +hattrib -s -h

システム属性と隠し属性は常にセットで使用します。

同じ属性を追加したり、付いていない属性を外すコマンドはエラーになりません。

システム属性だけでは非表示にならない

フォルダーオプションの設定で非表示になるのは、システム + 隠し属性のファイルのみ。

システム ファイルを非表示 隠しファイルを非表示 両方非表示
+s 表示 表示 表示
+h 表示 非表示 非表示
+s +h 非表示 非表示 非表示

+s:システム属性の付いたファイル。+h:隠し属性の付いたファイル。

システム ファイルを非表示 にしていてもシステムファイルは見える。

隠しファイルを非表示の設定でもシステムファイルは見える。

システム属性のみのファイルは、どう設定しても非表示にならない。

フォルダー オプションの設定は間違いなのか?

保護されたオペレーティング システム ファイルを表示しない

オペレーティング システム ファイル はシステム属性を指しますが、保護されたとなってるところに注意。保護されていないシステム ファイルは表示します。

非表示ファイルへのコマンドとエクスプローラーの対応

コマンド

  • 非表示のシステムファイルは DIR コマンドでも表示されない

    DIR /A:S のように該当する属性を指定すれば表示される。

    DIR /A:-d (ファイルのみ表示)など、そのファイルにマッチさえすれば表示される。

  • ATTRIB コマンドは非表示のファイルも全て表示される。

  • DEL コマンドでファイル名を指定しても非表示のファイルは削除されない。

エクスプローラー

  • 非表示になったシステムファイルでも、フォルダーのプロパティでのファイル数にカウントされる。

  • ただし、ステータスバーにはカウントされない。

    ステータスバー

  • CTRL + A では非表示のファイルは選択されない。

    たとえば CTRL + ADel の連続操作で非表示のファイルは削除されない。

  • ファイルが見えないと、このフォルダーは空です。が表示される。

    このフォルダーは空です。

  • 非表示ファイルのファイルが入ったフォルダーは簡単に削除できる。

    なんの警告も表示されないので非常に危ない。

感想

絶対に見られたくないファイルとフォルダーを一瞬で隠すの attrib を使ったカスタマイズの検証中に予期しないエラーに遭遇したことからファイル属性について調べ始めましたが、思わぬ深いところまで行きつきました。

システム属性の attrib その他のコマンドやエクスプローラーでの扱いが多種多様で、統一感に欠けます。

また、隠し属性の影響範囲が意外に広い印象を受けました。ただ、隠し属性は解除も簡単という特徴も併せ持つので、踏まえたうえで活用していきたいです。