shell - 重命名命令默认情况下不会覆盖,如何强制覆盖?

标签 shell command-line-interface rename mv

我有一个使用重命名命令的 bash 脚本,如下所示:

sudo rename 's/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/Date-$1-$2-$3__Time-$4:$5:$6/' 2019*

根据重命名手册页,命令应该默认覆盖,而不是使用 -o 标志覆盖。但是当我运行脚本时,它不会覆盖现有文件。但是,我收到一个错误,并且重复的文件没有得到脚本完成的任何其他处理。

Renaming Files

20190710220231.WAV not renamed: Date-2019-07-10__Time-22:02:31.WAV already exists 20190710220300.WAV not renamed: Date-2019-07-10__Time-22:03:00.WAV already exists 20190710220338.WAV not renamed: Date-2019-07-10__Time-22:03:38.WAV already exists 20190710220349.WAV not renamed: Date-2019-07-10__Time-22:03:49.WAV already exists

沮丧的是,我尝试只使用 mv 命令,但给了我一个不同的错误:

mv: target '20190710222433.WAV' is not a directory

所以我添加了一个/并得到了同样的错误。有什么建议吗?

最佳答案

您可以使用选项 -f 强制覆盖现有文件:

rename -f ...

人重命名:

-f, --force
               Over write: allow existing files to be over-written.

关于shell - 重命名命令默认情况下不会覆盖,如何强制覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56981246/

相关文章:

python - 如何使用 Python 在 Windows 7 文件资源管理器中访问和更改 JPEG 图像的标签描述属性?

sql-server - 如何在 SQL Server 中重命名表和/或列时自动重命名键 ("PK_")和约束 ("DF_")?

git - 如何重命名git根文件夹?

arrays - 如何在 Debian Jessie 的 bash 脚本中使用数组?

node.js - 安装 angular/cli 崩溃并出现错误 404

firefox - 从终端窗口启动 firefox,打开一个文本文件并将显示的文本定位在指定行

cassandra - 无法使用 Cassandra-CLI 创建 KeySpace

linux - 尝试根据菜单输出来验证 PS3 输入以进行用户验证

regex - Sed 仅删除第一次出现的字符串

linux - 如何递归地查看目录中的文件,删除特定模式并将其写入同一层次结构中的新文件名