获取可以与 touch -m 一起使用的修改日期

Dis*_*ame 5 osx date timestamps files touch

我需要获取文件的修改日期,以便我可以使用touch -m.

stat或者perl -le 'print((stat shift)[9])'没有返回我想要的东西。我认为你应该使用 - 和 + 但我不确定如何正确使用它。

我虽然使用-tI虽然它可以以另一种方式设置它,但这里我尝试将其设置为2013年7月3日。

touch -t  20130703
Run Code Online (Sandbox Code Playgroud)

但这也没有按照我想要的方式改变它。那么回到问题,如何复制其他文件属性以便我可以使用 来设置它们touch -m

Ter*_*ior 4

stat您可以使用以下命令将or返回的时间转换perl为您想要的格式date(假设您安装了 GNU coreutils):

# Convert UNIX time returned by perl to year+month+day
$ date -d @$(perl -le 'print((stat shift)[9])' FILENAME) +%Y%m%d
20130703

# Convert formatted time returned by GNU stat to year+month+day
$ date -d "$(stat -c %y FILENAME)" +%Y%m%d
20130703
Run Code Online (Sandbox Code Playgroud)

date它本身也可以直接给你文件的修改时间:

$ date -r FILENAME +%Y%m%d
20130703
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅GNU 日期( man date) 的手册页。