【Linux】fileコマンド

2019年3月10日

ファイルやディレクトリの種別の表示や拡張属性の設定・表示などについてまとめています。

fileコマンド

ファイルの種別を表示します。

形式
file [オプション] [ファイル名またはディレクトリ名]...n
オプション
オプション 説明
-i MIMEタイプを表示する
[root@hostname /]# file /tmp
/tmp: sticky directory

[root@hostname /]# file -i /etc/yum.conf
/etc/yum.conf: text/plain; charset=us-ascii

attrコマンド

attrコマンドは指定した ファイルやディレクトリの拡張属性を表示、設定を行います。

Linuxの主要なファイルシステムでは、「所有者」や「タイムスタンプ」、「パーミッション」などの共通で設定されている属性の他にユーザーが独自に追加することのできる属性があります。それを拡張属性と呼んでいます。

拡張属性は「security」、「system」、「trusted」、「user」の4つから構成されています。

形式
attr [オプション] [ファイル名またはディレクトリ名]
attr -s [属性名] -V [値] [ファイル名またはディレクトリ名]
オプション
オプション 説明
-s 属性名 指定した属性を設定する
-g 属性名 指定した属性の値を表示する
-r 属性名 指定した属性を削除する
-l 拡張属性の一覧を表示する
-L シンボリックリンクのリンク先を使用する
-R trusted属性の設定をする(root権限が必要)
-S security属性の参照をする(設定、削除はroot権限が必要)
-q メッセージを表示しない
-V 値 属性値を指定する(-sオプションと同時に使用)
[root@hostname /]# attr -s testattr -V test test.txt
Attribute "testattr" set to a 4 byte value for test.txt:
test
testattr属性に「test」という値を追加してtest.txtに設定する

[root@hostname /]# attr -g testattr test.txt
Attribute "testattr" had a 4 byte value for test.txt:
test

[root@hostname /]# attr -ql test.txt
testattr

lsattrコマンド

ext2(第2拡張)ファイルシステム上にあるファイルの属性を表示する(パーミッション以外)

形式
lsattr [オプション] [ファイル名またはディレクトリ名]
オプション
オプション 説明
-R 再帰的に表示する
-V プログラムのバージョンを表示する
-a 全てのファイル、ディレクトリを表示する(ドットで始まるファイルも含む)
-d ディレクトリそのものを表示する
-v ファイルのバージョンを表示する

chattr

ext2~ext4ファイルシステムで利用できる拡張属性の設定・削除を行う

形式
chattr [オプション] [属性] [ファイル名またはディレクトリ名]
オプション
オプション 説明
-R 再帰的に変更を適用する
-V 詳細を表示する
FILE ファイルを指定する
属性
属性 説明
a 追記のみ可能にする
c ファイルを圧縮する
d dumpの対象外とする
e 拡張フォーマットを使用する
i 変更不可属性を付与する(root権限でも変更不可)
j ファイルに対する操作を行う際に操作の内容をログに書き出す
s 安全に削除する
t 末尾のマージを出来なくする
u 削除出来なくする
A アクセス時刻を更新しない
D ディレクトリを同期的に更新する
S 同期的に更新する

「+属性」で設定、「-属性」で削除を行う。「=属性」でその属性だけが設定される。