gpt4 book ai didi

linux - 编辑文件时保留时间戳

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:59 27 4
gpt4 key购买 nike

我想在 for 循环中保留我正在编辑的文件的时间戳

for files in $DIR/MDC*/$FILE
do
# Need to get date here!
dos2unix $files
if grep -q $TYPE $files; then
echo 'done'
else
sed -i "1s/^/$TYPE\n/" $files
fi
$DIR/crccalc/LDDR16.py $files
# Use Date variable here to change it back

done

问题是我需要从文件中获取格式化的日期字符串,以便我可以执行 touch -r 以在循环完成后恢复文件日期。

stat 没有提供我需要的格式。

要求的格式:

YYMMDDhhmm

最佳答案

有一个很好的技巧:使用 touch -r reference_file。也就是说,touch 文件使用另一个文件的时间戳作为引用。

来自 man touch:

   -r, --reference=FILE
use this file's times instead of current time

您可能会问:这对您有何帮助?好吧,因为您可以创建一个虚拟文件 dummy 来处理:

  • 在修改文件之前,您可以使用要修改的文件 original_file 的时间戳触摸 dummy
  • 您修改original_file
  • 然后使用 dummy 文件的时间戳访问 original_file

一起:

for files in $DIR/MDC*/$FILE
do
# copy its timestamp to `dummy_file`
touch -r "$files" "dummy_file"

# ...things...

# Use Date variable here to change it back
touch -r "dummy_file" "$files"
done

关于linux - 编辑文件时保留时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com