
ファイルの「変更された」日付を変更する方法は? :を使用すると動作touch
しません。
$touch -t 9901010000 統計テスト; ファイル:「テスト」 サイズ: 0 ブロック: 0 IO ブロック: 4096 一般空のファイル デバイス: fe01h/65025d Inode: 11279017 リンク: 1 アクセス: (0644/-rw-r--r--) Uid: (1000/ x) Gid: (1000/ x) 訪問: 1999-01-01 00:00:00.000000000 +0100 修正: 1999-01-01 00:00:00.000000000 +0100 変更:2012-04-08 19:26:56.061614473+0200 生まれます:-
答え1
一般的な方法では、ctimeを変更することはできません。これは意図的に設計されています。ファイルのメタデータを変更すると、ctimeは常に現在の値に更新され、他のctimeを強制する方法はありません。ファイルのctimeを変更するには、次のいずれかを実行する必要があります。
- システム時間を適用したいctimeに設定し、ファイルをタッチしてシステム時間をリセットします。
- カーネルを変更し、インターフェイスを追加してctimeを変更します。
- ディスクイメージに直接アクセスし(使用するなど)、
debugfs
ディスクのビットを調整します(ファイルシステムをマウントするときはこれを行わないでください)。
答え2
extXについてjw013が指摘した関連SOの質問に対する答えはありますか?マウント解除されたディスク:
# Update ctime
debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1
# Drop vm cache so ctime update is reflected
echo 2 > /proc/sys/vm/drop_caches
答え3
$NOW=$(date) && date -s "2030-08-15 21:30:11" && touch file.txt && date -s "$NOW"
https://www.shellhacks.com/fake-file-access-modify-change-timestamps-linux
答え4
メタデータが変更されると、ファイルのctimeが更新されます。
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26 2010 x.py
$ stat -c %z x.py
2010-03-26 11:57:56.237068175 -0400
$ chown ignacio x.py
$ stat -c %z x.py
2012-04-08 15:31:33.682383575 -0400
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26 2010 x.py