CHFLAGS(1)

名称
chflags - ファイルのフラグを変更する

書式
chflags [ -R [-H | -L | -P]] flags file ...

解説
chflags は指定したファイルのフラグを、 flags で指定した値に変更します。

オプションは以下のとおりです。

-H  -R オプションが指定されていれば、引数で指定されたシンボリックリンクを たどります (木構造の検索中にみつかったシンボリックリンクはたどりません)。

-L  -R オプションが指定されていれば、全てのシンボリックリンクをたどります。

-P  -R オプションが指定されていれば、どのシンボリックリンクもたどりません。 これがデフォルトです。

-R  指定されたファイル自身ではなく、 そのファイル以下のディレクトリ階層すべての フラグを変更します。

フラグは、8 進数か、キーワードをコンマで区切ったものです。 現在定義されているキーワードは以下のとおりです:

arch, archived
    archived フラグをセットします (スーパユーザのみ)

opaque
    opaque フラグをセットします (所有者かスーパユーザのみ)

nodump
    nodump フラグをセットします (所有者かスーパユーザのみ)

sappnd, sappend
    system append-only (システムレベルでの追加専用) フラグをセットします (スーパユーザのみ)

schg, schange, simmutable
    system immutable (システムレベルでの変更不可) フラグをセットします (スーパユーザのみ)

sunlnk, sunlink
    system undeletable (システムレベルでの削除不可) フラグをセットします (スーパユーザのみ)

uappnd, uappend
    user append-only (ユーザレベルでの追加専用) フラグをセットします (所有者またはスーパユーザのみ)

uchg, uchange, uimmutable
    user immutable (ユーザレベルでの変更不可) フラグをセットします (所有者またはスーパユーザのみ)

uunlnk, uunlink
    user undeletable (ユーザレベルでの削除不可) フラグをセットします (所有者またはスーパユーザのみ)

オプションキーワードの前に “no” を付けたりキーワードから “no” を削ると、そのフラグを無効にします。 例:

nouchg
    ユーザの immutable ビットをクリア (所有者またはスーパユーザのみ)
dump
    nodump フラグをクリア (所有者またはスーパユーザのみ)

シンボリックリンクにはフラグはありません。 よって、 -H あるいは -L オプションを指定せずにシンボリックリンクに 対して chflags を実行した場合、常に成功しますが、何の効果もありません。 -H 、 -L 、 -P オプションは -R オプションを指定しない限り無視されます。 また、これらのオプションはお互いの効果を上書きするため、 最後に指定されたオプションによってコマンドの動作が決まります。

ファイルのフラグを見るには "ls -lo" とします。

診断

関連項目
ls(1), chflags(2), stat(2), fts(3), symlink(7)

バグ
限られたユーティリティしか chflags を認識しません。 これを認識するツールとしては、 ls(1), cp(1), find(1), install(1), dump(8), restore(8) などがあります。 特に、現在 chflags を認識していないツールのひとつは pax(1) ユーティリティです。

歴史
chflags は 4.4BSD に初めて登場しました。