파일의 '변경'날짜를 어떻게 변경합니까?


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을 변경하기위한 인터페이스를 추가하도록 커널을 수정하십시오.
  • 디스크 이미지에 직접 액세스하고 (예 :로 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.