Mac OS或Linux - 更改年份,但请离开Month Day Hours&秒不变

时间:2013-05-18 12:14:48

标签: linux macos date touch timestamp

我需要递归一个目录树,并将所有文件的时间戳的YEAR ONLY部分更新到某一年。我无法弄清楚如何通过触摸来做到这一点。我不能使用touch -A,因为目标文件有很多不同的年份,因此相对调整已经结束。

我只是想将所有年份更新到2013年,无论他们目前是什么,但需要保持其余的时间戳不受影响。这可能吗?

任何帮助表示赞赏。 谢谢, 史蒂夫。

1 个答案:

答案 0 :(得分:0)

#!/bin/sh

#This is to ensure that the output of all the commands will be in english
export LANG=C

#Gets the modification date from the file, you can change it to get any other timestamp instead.
MODDATE=$(stat $1 | fgrep Modify | cut -d" " -f2)

YEAR=2013

#Sets month and day as the old date
MONTH=$(echo $MODDATE | cut -d- -f2)
DAY=$(echo $MODDATE | cut -d- -f3)

NEWDATE=$YEAR-$MONTH-$DAY

#Sets the new date
touch -d $NEWDATE $1