是否可以使用标准Linux命令清除保留其时间戳的文件?例如:
echo“”>文件名
将文本文件转换为空,这对我来说没问题。但我需要保持时间戳不变。
答案 0 :(得分:7)
您可以使用触摸执行以下操作:
#!/bin/sh
TMPFILE=`mktemp`
#save the timestamp
touch -r file-name $TMPFILE
> file_name
#restore the timestamp after truncation
touch -r $TMPFILE file-name
rm $TMPFILE
答案 1 :(得分:2)
您可以使用日期记录时间戳字符串并将其传回触摸来跳过tmp文件。
#!/bin/sh
# Save the timestamp
STAMP=`date -r file_name`
> file_name
# Restore the timestamp
touch -d "$STAMP" file_name
答案 2 :(得分:1)
Here是一篇很好的文章。希望它有所帮助。
<强>增加:强>
抱歉,只需阅读,您需要零文件,而不是副本。 触摸可以创建带有所需时间戳的零文件。
实施例
To set the date to 7:30 am 1st October 2015
touch /t 2015 10 01 07 30 00 MyFile.txt
答案 3 :(得分:0)
要补充 mmond 的答案(由于声誉不足而无法发表评论),请不要忘记本地化。要处理任何本地化,答案应为:
#!/bin/sh
# Save the timestamp
STAMP=`LANG= date -r file_name`
> file_name
# Restore the timestamp
touch -d "$STAMP" file_name