Macos Bash touch-非法选项-d
昨天我拍了很多照片,但我忘了改变相机的时区。现在所有图片都有错误的修改日期 我想将特定目录中所有文件的修改日期更改为Macos Bash touch-非法选项-d,macos,bash,unix-timestamp,exif,Macos,Bash,Unix Timestamp,Exif,昨天我拍了很多照片,但我忘了改变相机的时区。现在所有图片都有错误的修改日期 我想将特定目录中所有文件的修改日期更改为减去10小时 #!/bin/sh for i in /Users/slick/Desktop/100D5200/*; do touch -r "$i" -d '-10 hour' "$i" done 当我在OSX中运行这个脚本时,我得到 touch:非法选项--d用法:touch[-A[-][[hh]mm]SS][acfhm] [-r文件][-t[[CC]YY]MMDDhhm
减去10小时
#!/bin/sh
for i in /Users/slick/Desktop/100D5200/*; do
touch -r "$i" -d '-10 hour' "$i"
done
当我在OSX中运行这个脚本时,我得到
touch:非法选项--d用法:touch[-A[-][[hh]mm]SS][acfhm]
[-r文件][-t[[CC]YY]MMDDhhmm[.SS]]文件
我做错了什么?您正在使用GNU
touch
的选项。您可以使用操作系统X中的以下命令将其安装到操作系统X中:
然后它将以名称gtouch
而不是touch
提供:
#!/bin/sh
for i in /Users/slick/Desktop/100D5200/*; do
gtouch -r "$i" -d '-10 hour' "$i"
done
但是,-d“10小时”
不会将时间戳向后移动10小时,而是将时间戳设置为当前时间减去10小时。如果你想抵消时间戳,你必须为每个文件做算术运算
此外,您实际需要的可能是更改图片的EXIF数据,这将需要另一种工具,而不仅仅是触摸。以下命令解决了我的问题:
exiftool "-AllDates-=10" /Users/slick/Desktop/100D5200
exiftool "-DateTimeOriginal>FileModifyDate" /Users/slick/Desktop/100D5200
显然在你之前
brew install exiftool
在bash脚本中,请尝试使用: $(触摸-r“$i”-d'-10小时“$i”)
它在El Capitan上对我很有效我并不是一个OSX用户,但我认为这个话题对你很有用:
哪个触摸
和触摸--version
和触摸--help
给了你什么?我想您没有使用GNU touch,并且您的版本缺少--d
我做错了什么?期望提供非标准的、特定于平台的扩展。可能值得一读。@Camaleo我的错。我不知道我是用brew
安装的。
brew install exiftool