问题描述
有没有办法改变文件被修改/创建的日期(在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