ファイルやフォルダの属性

Windowsのファイルやフォルダには属性と呼ばれる値が設定されている。代表的な属性は次のとおり。

  • 読み取り専用
  • 隠しファイル
  • アーカイブ可能
  • コンテンツインデックス有無
  • 圧縮可能
  • 暗号化可能


LinuxとWindowsではファイルシステムもそのアクセス保護機構も仕組みや考え方が異なるので正確な対比をすることはできないのだが、Windowsでファイルやフォルダに用意されている属性は、Linuxでいえばファイルシステムに用意されている属性に近いものがある。あくまでも似ているというだけで同じものではないのだが、機能の目的を考えるとこれが一番近いのではないかと思う。

Windowsではこの属性をattribというコマンドで変更できるようになっている。今回はこのコマンドの使い方を取り上げる。

attribコマンド

attribコマンドの基本的な使い方は次のとおり。対象はファイルやフォルダだ。

attribコマンドの基本的な使い方

attrib パラメータ 対象 オプション

パラメータの部分には属性の変更(属性を有効化するか無効化するか)を指定する。利用できるパラメータは次のとおり。

パラメータ 内容
+r 読み取り専用属性を設定
+a アーカイブファイル属性を設定
+s システムファイル属性を設定
+h 隠しファイル属性を設定
+i コンテンツにインデックスを付けない設定
-r 読み取り設定属性を解除
-a アーカイブファイル属性を解除
-s システムファイル属性を解除
-h 隠しファイル属性を解除
-i コンテンツにインデックスを付ける設定

attribコマンドの最後にはオプションを指定することができ、次のオプションが用意されている。

オプション 内容
/s 設定をディレクトリ以下のファイルに対して再帰的に適用
/d 設定をディレクトリに適用
/l 設定をシンボリックリンクそのものに適用

attribコマンドはこのようにシンプルなコマンドだ。attribコマンドで変更された属性は直ちに反映される。

attribコマンドの実行例

attribコマンドを実行してみよう。たとえば、テキストファイルをパラメータもオプションも指定せずにattribコマンドに指定すると、次のように対象に現在設定されている属性の情報が表示される。

attribコマンドで対象の属性を表示

表示されるリストの左側の文字列が属性だ。上記例では属性としてAが設定されており、アーカイブ可能であることだけが属性として設定されていることになる。

たとえばこの状態でファイルエクスプローラから対象ファイルのプロパティを選択すると、次のような表示を確認できる。読み込み専用属性も隠しファイル属性も設定されていないので、プロパティから確認してもその部分にはチェックが入っていないことがわかる。

ファイルエクスプローラのプロパティから確認した場合

次のようにattribにパラメータとして+rを指定すると、読み取り専用属性を設定することになる。attribにパラメータを指定せずに確認すると、読み取り専用属性としてRが追加されたことも確認できる。

attribに+rパラメータを指定して読み込み専用属性を設定

この状態でもう一度ファイルエクスプローラからプロパティを確認すると、次のように読み取り専用の部分にチェックが入っていることを確認できる。

attribコマンドで変更された属性情報が反映されている

attribコマンドで確認すると、この状態ではアーカイブとしても利用できるという属性がついている。

アーカイブ可能属性もついている

しかし、アーカイブ可能属性は先ほどのファイルエクスプローラ→プロパティからは確認できない。属性の[詳細設定]をクリックして表示されるダイアログから確認することができる。

より多くの属性については[詳細設定]をクリックして表示されるダイアログから確認

試しに次のようにパラメータとして-aを指定してattribコマンドを実行する。これでアーカイブ可能という属性は解除されたはずだ。

attribコマンドに-aパラメータを指定してアーカイブ可能属性を解除

ファイルエクスプローラから、プロパティ→属性の[詳細設定]を確認すると、次のようにアーカイブ可能属性が解除されていることを確認できる。

ファイルエクスプローラからアーカイブ可能属性の解除を確認

このようにファイルエクスプローラからはGUIを使って変更する属性を、attribコマンドを利用することでコマンドから実行できる。attribコマンドには属性変更を再帰的に実行するオプションも用意されており、まとめて属性を変更する場合にも利用できる。

GUIではなくコマンドを利用する最大の利点のひとつは、GUIでは長い時間がかかってしまうような作業をコマンドではものの数秒で終わらせられる点にある。操作を間違えると大変なことにもなるのだが、作業効率を引き上げるうえでは欠かすことのできないステップといえる。多くのWindowsコマンドを知るようになると、Windowsがまた別のシステムとして見えてくるはずだ。

参考資料