Linuxファイルシステムでファイル固有のアーカイブビットがサポートされているかどうかを知りたいです。
https://en.m.wikipedia.org/wiki/Archive_bit
ntfsではなく、fatではなくext3のような基本的なfsで同じロジックを持つ必要があります。
ベストアンサー1
LinuxにはDOS / Windowsアーカイブビットと同じ機能はありませんが、同様のものを作成できます。最新のLinuxシステムのサポートカスタムファイル属性、少なくともext4とbtrfsでは。あなたはそれを使用することができますgetfattr
それらをリストし、setfattr
設定してください。カスタム属性は拡張属性つまり、ユーザーの名前空間では、名前は5文字で始まりますuser.
。
$ touch foo
$ getfattr foo
$ setfattr -n user.archive -v "$(date +%s -r foo)" foo
$ getfattr -d foo
# file: foo
user.archive="1471478895"
必要に応じてカスタム属性を使用できます。値は短い文字列にすることができます。使用可能な記憶容量は、ファイルシステムとカーネルのバージョンによって異なり、数百バイト程度が適しています。ここではファイルのタイムスタンプを使用しています。変更すると実際のタイムスタンプが更新されますが、カスタム属性のコピーは更新されません。
既存のファイルを上書きするのではなく、ファイルを削除して新しいバージョンに置き換えてファイルを変更すると、カスタムプロパティは消えます。これは目的に適しているはずです。属性が存在しない場合は、ファイルをバックアップする必要があります。
Unix 世界の増分バックアッププログラムはカスタム属性を使用しません。彼らがすることは、ファイルのタイムスタンプをバックアップのタイムスタンプと比較し、ファイルが変更された場合にファイルをバックアップすることです。これはバックアップの実際の状態を考慮するので、より安定しています。システム状態のみに基づくバックアップは、バックアップが消えたり、プロパティの維持中に発生したエラーによってファイルが失われる可能性が高くなります。