我正在Unix中使用脚本修改一些文件。我不希望更改文件的修改时间。我使用touch
命令但没有用。还有其他办法吗?
我想要文件的先前修改时间。有可能吗?
答案 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