ファイルの「変更」日付を変更するにはどうすればよいですか?


23

「変更」日付を変更するにはどうすればよいですか?

$ touch -t 9901010000 test;stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fe01h/65025d    Inode: 11279017    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    x)   Gid: ( 1000/    x)
Access: 1999-01-01 00:00:00.000000000 +0100
Modify: 1999-01-01 00:00:00.000000000 +0100
**Change: 2012-04-08 19:26:56.061614473 +0200**
 Birth: -

3
任意に設定するのctimeは簡単ではありません。SO に関する関連質問
jw013

回答:


22

通常の方法でctimeを変更することはできません。これは仕様によるものです。ファイルのメタデータを変更すると、ctimeは常に最新の状態に更新されます。別のctimeを強制する方法はありません。ファイルのctimeを変更するには、次のいずれかを実行する必要があります。

  • システム時間を設定するctimeに設定し、ファイルをタッチして、システム時間をリセットします。
  • カーネルを変更してインターフェースを追加し、ctimeを変更します。
  • ディスクイメージに直接アクセスし(例:を使用debugfs)、ディスク上のビットをいじります(ファイルシステムがマウントされている間はアクセスしないでください)。

2
システム時間とchmodの設定がうまくいきました。ここのスクリプトを参照してください:stackoverflow.com/questions/16126992/…–
gaoithe

11

マウントされていないディスク上で、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

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

しかし、それを更新せずに変更する方法
Someone1234
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.