ランダムなsource.tar.gz(今日31-jan-2019
)をダウンロードして抽出しました。stat
作成したフォルダを操作すると、次のようになります。
Access: 2019-01-31 10:37:26.308991485 +0100
Modify: 2018-11-18 00:02:35.000000000 +0100
Change: 2019-01-31 10:36:03.881185889 +0100
Birth: -
修正日がノートブックを所有する前の過去でした。誰かがこのタイムスタンプがどのような用途に使用されるかを説明できますか?
これは非常に非直感的であり、すべての時間(変更/アクセス/変更)が私のファイルシステムの寿命に制限されることを望みます。 (また、最も有用な日付の1つ、つまり特定のファイル/フォルダが最初に表示された日付は存在しませんが、はい、渡すことができることを知っています。ext4の生成が空です。)
ベストアンサー1
私の答えはGNUに基づいていますtar
。マニュアルはこちらから確認できます。
tar
アーカイブを作成するときにファイルの変更時間を保存します。これにより、tar
ファイルのタイムスタンプに従って特定のタスクを実行できます。
- 最初の用途は「更新」操作です。
-u
、--update
アーカイブの対応するコピーよりも最新のファイルを追加します。
マニュアルから:
この
--update
ジョブは、指定されたアーカイブ・メンバーの日付を同じ名前のファイルの日付と比較して、tarアーカイブを更新します。ファイルの変更時間がアーカイブメンバーよりも最新の場合、ファイルの最新バージョンがアーカイブに追加されます(のように--append
)。
更新操作は実際にファイルを上書きするのではなく追加します。これは、歴史的な理由、つまりテープの中央部分に書き込みが困難であったためです。
- 2番目の用途は、ディスクにすでに存在するファイルアーカイブを抽出することです。既存のファイルが最新のファイルの場合は、
tar
次のオプションを使用して保持するように要求できます--keep-newer-files
。
--最新ファイルの維持
アーカイブされたコピーよりも最新の既存のファイルを置き換えないでください。
tar
アーカイブはもともと磁気テープにファイルを便利に保存するために使用されていました。長期保存の観点からは、tar
アーカイブはある時点のファイルセットの状態を表すことができます。論理的には、アーカイブされたコンテンツのタイムスタンプを含める必要があります。修正タイムスタンプは、atime(ファイルを読み取ると変更されます)またはctime(tarがファイルから抽出されたメタデータを「復元」するときに変更される可能性があります)ではなく、ファイルの内容が変更された時期を信頼できる尺度です。変更時間がアーカイブ内に存在するため、
-d
/オプションを使用して、--diff
その情報を既存のファイルシステムのファイルと比較することもできます。
()またはジョブは、指定されたアーカイブメンバーを同じ名前のファイルと比較し、ファイルサイズ、モード、所有者、変更日、および内容の違いを報告します
--compare
。-d
--diff
最後に、アーカイブを抽出するときに修正タイムスタンプを無視する必要がある場合は-m
/--touch
オプションを使用します。
-m
、--touch
データ修正時間は抽出されません。このオプションを使用すると、tarは抽出されたファイルのデータ変更時間をアーカイブに書き込まれた時間に設定するのではなく、ファイルが抽出された時間のままになります。