如何批量重命名文件以添加修改日期?

如何批量重命名文件以添加修改日期?

我有这些文件,分别是今天和昨天修改的:

a.txt
b.png

我希望它们重命名为:

2020-02-01.a.txt
2020-01-31.b.png

如何通过单个 Bash 命令做到这一点?

答案1

ls | while read FILE; do mv "$FILE" "$(stat "$FILE" -c '%y' | cut -b -10). $FILE"; done

在 Windows 和 Linux Mint 上的 Git Bash 上进行了测试。

答案2

使用基于 Perl 的rename实用程序:

$ rename -n 'use POSIX qw(strftime); s/^/strftime("%Y-%m-%d.",localtime((stat $_)[9]))/e' *.*
rename(a.txt, 2020-02-01.a.txt)
rename(b.png, 2020-02-01.b.png)

(在某些系统上,rename可能提供为prename)。

相关内容