昨天我拍了一堆照片,但我忘记更改相机的时区了。现在所有图片都有错误的修改日期。
我想将特定目录中所有文件的修改日期更改为minus 10 hours
。
#!/bin/sh
for i in /Users/slick/Desktop/100D5200/*; do
touch -r "$i" -d '-10 hour' "$i"
done
当我在OSX中运行此脚本时,我得到了
触摸:非法选项 - d用法:触摸[-A [ - ] [[hh] mm] SS] [-acfhm] [-r file] [-t [[CC] YY] MMDDhhmm [.SS]]档案......
我做错了什么?
答案 0 :(得分:1)
您正在使用GNU public static class WebDriverExtensions
{
public static IWebElement FindElementIfExists(this IWebDriver driver, By by)
{
IWebElement result = null;
try
{
result = driver.FindElement(by);
}
catch { }
return result;
}
}
的选项。您可以在OS X中使用Homebrew在OS X中安装它:
touch
然后它将以$ brew install coreutils
而不是gtouch
:
touch
但是,#!/bin/sh
for i in /Users/slick/Desktop/100D5200/*; do
gtouch -r "$i" -d '-10 hour' "$i"
done
不会将时间戳移回十小时,而是将时间戳设置为当前时间减去十小时。如果要偏移时间戳,则必须为每个文件执行算术运算。
此外,你真正想要的是改变图片的EXIF数据,这需要另一个工具而不是-d '10 hour'
。
答案 1 :(得分:1)
下面的命令解决了我的问题:
exiftool "-AllDates-=10" /Users/slick/Desktop/100D5200
exiftool "-DateTimeOriginal>FileModifyDate" /Users/slick/Desktop/100D5200
显然在做之前
brew install exiftool
答案 2 :(得分:0)
尝试使用: $(touch -r“$ i”-d'10小时'“$ i”)
它适用于El Capitan