重命名失败但可以使用 -n(无操作)选项

Rename fails but does work with -n (no action) option

我正在尝试将一些格式为 Week_XX_2018-XX-XX_-_2018-XX-XX.md 的文件重命名为 Week_XX_2018-XX-XX/2018-XX-XX.md。所以将 _-_ 更改为 /.

我尝试使用 rename 并首先使用 -n 选项对其进行了测试。这工作正常并为所有文件显示类似这样的内容:

$ rename -n 's/_-_/\//g' *
rename(Week_01_2018-12-03_-_2018-12-09.md, Week_01_2018-12-03/2018-12-09.md)
...

但是,如果在没有 -n 选项的情况下执行,命令将失败。它说

Can't rename Week_01_2018-12-03_-_2018-12-19.md Week_01_2018-12-03/2018-12-09: No such file or directory

为什么会这样?怎么能测试命令有效而实际命令不行呢?

字符“/”是特殊字符,因为它用作路径分隔符。有关重命名失败原因的更详细答案,请参阅 Is it possible to use "/" in a filename?