尝试使用rename执行此操作:
$rename -n 's/^\d+/(stat($_))[9]/e' [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*
从shell提示符.它非常有用,您可以像使用e修饰符替换stat那样添加一些perl代码.
当测试成为valid时,您可以删除-n(干运行模式开关).
如果运行以下命令(linux)
$file $(readlink -f $(type -p rename))
你有一个结果
.../rename: Perl script, ASCII text executable
并且不包含:
ELF
那么这似乎是正确的工具=)
如果没有,为了使它成为Debian上的默认(通常已经是这种情况)和Ubuntu这样的派生:
$sudo update-alternatives --set rename /path/to/rename
(将/ path / to / rename替换为perl重命名命令的路径.
如果您没有此命令,请搜索包管理器以安装它或do it manually
最后但并非最不重要的是,这个工具最初是由Perl的父亲Larry Wall编写的.
编辑
如here所述,如果您有以下错误:
Argument list too long
然后使用find这样:
find -type f -name '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*' -print0|
xargs -0 -n1 rename -n 's/^\d+/(stat($_))[9]/e'
(尝试没有-n1,这也应该有效)