linux - 在 Unix 中以当前日期为后缀批量重命名文件

标签 linux bash unix batch-rename

我正在尝试批量重命名当前文件夹中带有日期后缀的所有文件:

rename 's/(.*)/$1_$(date +%F)/' *

但该命令将 info.txt 重命名为 info.txt_1000 4 24 27 30 46 113 128 1000date +%F)。我希望结果为 info.txt_2016-10-13

最佳答案

您希望将 $1 按字面意思传递给 rename,同时让 $(date +%F) 由 shell 展开。当您使用单引号时,后者不会发生,只有使用双引号时才会发生。解决方案是使用双引号并转义 $1,这样 shell 就不会展开它。

rename "s/(.*)/\$1_$(date +%F)/" *

关于linux - 在 Unix 中以当前日期为后缀批量重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40032033/

相关文章:

c++ - 当主线程无限循环运行时,服务器尚未接收到用 QTcpSocket::write 写入的字节?

bash - 🛠 是无效的 Bash 别名

mysql - Bash脚本创建数据库

regex - bash:如何检查字符串是否以 '#' 开头?

Linux 排序不适用于负 float

java - csvWriter 在 unix 机器(tomcat 服务器)上对于大文件(大小 5000 KB)的行为不同,它会创建空文件,相同的代码在 Windows 上工作正常,为什么?

python - 是否有代码可以在程序中运行以使用已知密码连接到安全 WiFi

linux - Bash - 为什么 sfdisk 在此脚本中不起作用?

用于接收和重新传递引用参数的 Bash 脚本

swift - NSString.appendingPathComponent(_ :) not working correctly on Linux