我正在寻找一种解决方案,以按创建日期yy-mm-dd而不是 Mac 和 Ubuntu 的实际日期来重命名文件。我已经知道如何使用 AppleScript 创建一个应用程序并每小时调用它,launchd当文件被发送到存储库时,Ubuntu 使用 CRON 作业进行存储,而这些文件在文件的开头没有创建日期。
我可以通过今天的日期重命名文件:
for file in *.zip; do
mv -n "$file" "$(date +%Y%m%d_"$file")"
done
Run Code Online (Sandbox Code Playgroud)
但是当我尝试:
for f in *.zip; do
D=$(stat -n '%Y%m%d' $f)
mv -v "$f" "$D_$f"
done
Run Code Online (Sandbox Code Playgroud)
没发生什么事。我可以用来stat foobar.zip获取文件的日期,但是有没有办法可以为创建日期执行此操作,因此当我编写条件以测试是否不存在应用创建日期的日期时?我有点记得能够date -r在 Ubuntu 中做,但在 Mac 上不可用。我已经在 SO、AskUbuntu 和 Unix 上进行了搜索,但是我找不到可以让我选择执行此操作的解决方案。我考虑过测试stat和awk设置为变量D并以这种方式重命名。
完整示例
Amadan 的解决方案非常有帮助,当然也是正确的。也许像我一样,其他人正在寻找完成的示例。我想通了,它看起来像这样:
单线:
for f in *.jpg; do D=$(date -r $(stat -f %B $f) +%Y-%m-%d-%H-%M-%S); mv "$f" "$D-$f"; done
Run Code Online (Sandbox Code Playgroud)
可读版本:
for file in *.jpg
do VARIABLE_DATE_OF_FILE=$(date -r $(stat -f %B $file) +%Y-%m-%d-%H-%M-%S)
mv "$file" "$VARIABLE_DATE_OF_FILE-$file"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3914 次 |
| 最近记录: |