如何修改linux文件生成日期,我如何更改文件的修改/创建日期?

  • Post author:
  • Post category:linux


问题描述

有没有办法改变文件被修改/创建的日期(在Nautilus中或者用ls -l命令显示)?理想情况下,我正在寻找一个命令,可以将一大堆文件的日期/时间戳更早或更晚(例如+8小时或-4天等)更改为一定的时间。

最佳解决方法

您可以使用touch命令更改文件的修改时间:

touch filename

默认情况下,这会将文件的修改时间设置为当前时间,但有多个标志,例如-d标志选择特定日期。因此,例如,要将文件设置为在当前两小时前修改,可以使用以下内容:

touch -d “2 hours ago” filename

如果你想修改相对于其现有修改时间的文件,下面应该做的诀窍:

touch -d “$(date -R -r filename) – 2 hours” filename

如果你想修改大量的文件,你可以使用以下内容:

find DIRECTORY -print | while read filename; do

# do whatever you want with the file

touch -d “$(date -R -r “$filename”) – 2 hours” “$filename”

done

您可以将参数更改为find以仅选择您感兴趣的文件。如果您只想更新相对于当前时间的文件修改时间,则可以将其简化为:

find DIRECTORY -exec touch -d “2 hours ago” {} +

这种形式对于文件时间相对版本来说是不可能的&#x