我使用以下命令将当前目录中的文件中单词“ ”替换merchant
为“ ”:capital
find * -type f -exec sed -i -e 's/merchant/capital/g' {} \;
但是上述命令也会修改文件日期,有什么办法可以停止文件修改日期?
提前致谢。
答案1
我认为对你来说没有一个明确的解决方案。
但作为一种解决方法。
获取文件的修改日期
stat file.txt | grep Modify
现在完成你所做的操作后恢复上次修改日期
touch -m -t [[CC]YY]MMDDhhmm[.SS]
下面解释一下上述格式:
- CC – 指定年份的前两位数字
- YY – 指定年份的最后两位数字。如果 YY 的值介于 70 和 99 之间,则假定 CC 数字的值是
- 如果 YY 的值在 00 至 37 之间,则 CC 数字的值假定为 20。无法设置 2038 年 1 月 18 日之后的日期。
- MM – 指定月份
- DD – 指定日期
- hh – 指定小时
- mm – 指定分钟
- SS – 指定秒
例如:更改我的 url.txt 文件的修改日期
stat url.txt | grep Modify
输出
Modify: 2015-05-04 09:42:28.148281881 +0300
修改为 04/05/2016 20:05:04
touch -m -t 201605042005.04 url.txt
确保有效
stat url.txt | grep Modify
输出
Modify: 2016-05-04 20:05:04.000000000 +0300