仅使用时间/日期戳的 Linux 重命名文件



我有一个文件,我想将 mv 重命名为 year_month_day_h:m:s - 最好的方法是什么?

我已经尝试了以下内容,但它没有动态添加正确的印章(原始文件的名称中实际上有一个反斜杠(:

mv getnw/myfilename.txt "%Y%m%d%H%M%S".txt mv getnw/myfilename.txt "%Y-%m%d%H%M%S".txt mv getnw/myfilename.txt %Y-%m%d%H%M%S.txt mv getnw/myfilename.txt "'date +%Y%m%d%H%M%S'.txt"

mv myfile.txt `date +%Y_%m_%d_%H:%M:%S`.txt
mv myfile.txt myfile`date -Is`.txt

是较短的版本

但是:不适用于某些 UNIX 命令,如 rsync 或 SCP,因为它将部分名称解析为主机地址。 使用tr更改:

mv myfile.txt myfile`date -Is|tr : -`.txt

mv myfile.txt myfile$(date -Is|tr : -).txt