我正在尝试将一系列文件的日期更改为9小时。我达到了这个目标:
for i in *.MOV; do touch -r "$i" -d "-9 hours" "$i"; done
这应该适用于最近的系统,但OSX中的touch命令似乎有点过时而不支持-d开关。
我正在使用Snow Leopard。有关使用单行命令执行此操作的最佳选项的任何想法吗?我不想为此创建脚本。
答案 0 :(得分:2)
好的,把它整理出来。 OSX附带gtouch
命令,它知道-d
开关。它是GNU coreutils的一部分。
答案 1 :(得分:1)
Donno OS X,但它应该很容易
get curr time stamp on the file
convert it to seconds
subtract 9 hours (9*60*60 secs) from it
convert it back to the format accepted by touch's -t option
run touch command
所有这些当然可以在命令行上单个for循环中完成。
以下是WikiPedia显示来回转换的简单示例。
# To convert a specific time stamp to Unix epoch time (seconds since 1970-01-01):
date +"%s" -d "Fri Apr 24 13:14:39 CDT 2009"
# 1240596879
# To convert Unix epoch time (seconds since 1970-01-01) to a human readable format:
date -d "UTC 1970-01-01 1240596879 secs"
# Fri Apr 24 13:14:39 CDT 2009
# Or:
date -ud @1000000000
# Sun Sep 9 01:46:40 UTC 2001
# or: Haven't tested this but should work..
date -d @1000000000 +%y%m%d%%H%M%S
# 010909014640
答案 2 :(得分:0)
看Wikipedia Page for Touch,看来你已经习惯了GNU版的Touch。哪个MacOS没有使用。
对于您想要做的事情,请查看“SetFile”命令,该命令随XCode工具一起安装。你有-d和-m选项,它们重置了创建日期和修改日期&时间分别。
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/SetFile.1.html