为什么我的 mmv 命令没有覆盖文件?

为什么我的 mmv 命令没有覆盖文件?

我有一个批处理文件,除其他外,它使用命令mmv重命名一些文件。相关行是这样的:

mmv "$BASEDIR/files/*.txt" "$BASEDIR/files/#1.strings"

从本质上讲,它是有效的,但问题是,当文件碰巧已经存在时,它会不断要求我确认是否覆盖文件。我希望它在没有确认的情况下继续执行,所以我检查了手册页mmv,它说只需使用该-o选项,如下所示:

mmv -o "$BASEDIR/files/*.txt" "$BASEDIR/files/#1.strings"

但这并没有什么区别。每次我运行脚本时,当涉及到该mmv部分时,它都会开始询问我确认。

为什么该-o选项没有完成其工作,以及如何在mmv不要求确认的情况下覆盖?

答案1

尝试将 -d 添加到命令行中:

碰撞和删除

当任何两个或多个匹配文件必须移动、复制或链接到相同的目标文件名时,mmv 会在执行任何操作之前将该情况检测为错误。此外,mmv 检查其任何操作是否会导致现有文件被破坏。

如果指定了 -d(删除)选项,则所有文件删除或覆盖都会以静默方式完成。

相关内容