更改后如何恢复文件的修改时间?

时间:2011-07-27 05:24:08

标签: unix

我正在Unix中使用脚本修改一些文件。我不希望更改文件的修改时间。我使用touch命令但没有用。还有其他办法吗?

我想要文件的先前修改时间。有可能吗?

3 个答案:

答案 0 :(得分:2)

触摸即可。你的语法是否正确?

[01:35:42 root@~]# touch -t 201107262235.34 foo
[01:35:49 root@~]# stat foo
  File: `foo'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: ca20h/51744d    Inode: 642445      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-07-26 22:35:34.000000000 -0400
Modify: 2011-07-26 22:35:34.000000000 -0400
Change: 2011-07-27 01:35:49.000000000 -0400
[01:35:50 root@~]# 

答案 1 :(得分:1)

在更改文件之前捕获修改时间:

oldFileTime=`find theFileThatIsBeingChanged -maxdepth 0 -printf "%Ty%Tm%Td%TH%TM.%.2TS"`

进行修改,然后使用触摸重置时间:

touch -t "$oldFileTime" theFileThatIsBeingChanged 

答案 2 :(得分:1)

备份:

# savedate=$(stat -c %Y filename.ext)

恢复:

# touch -d @${savedate} filename.ext