【发布时间】:2021-11-30 10:02:06
【问题描述】:
我正在尝试通过使用下面的 find 命令添加时间戳值来重命名当前目录中的文件
find . -type f -exec mv {} $(date +%Y-%m-%d)_{} \;
但是得到'不能移动,没有这样的文件或目录错误',但是附加在下面的命令中效果很好,不确定两者之间有什么区别。
find . -type f -exec mv {} {}.$(date +%Y-%m-%d) \;
【问题讨论】:
-
find返回绝对路径,所以基本上你正在尝试执行这样的命令:mv /home/user/file 2021-10-11_/home/user/file。第二个参数是一个无效的路径和错误显示的内容。 -
这终于为我工作了," find . -type f -exec sh -c 'mv {} $(date +%Y-%m-%d-%H-%M)_$ (basename {})' \; "