重命名 'y/AZ/az/' * 在 Linux 的 Windows 子系统 (wsl) 上不起作用

重命名 'y/AZ/az/' * 在 Linux 的 Windows 子系统 (wsl) 上不起作用

当你这样做时,它会说文件已经存在。

示例输出:

rename 'y/A-Z/a-z/' *
Totemic-1.12.2-0.11.6.jar not renamed: totemic-1.12.2-0.11.6.jar already exists
TreeChoppin-1.12.2-1.0.0.jar not renamed: treechoppin-1.12.2-1.0.0.jar already exists
UniDict-1.12.2-2.9.3.jar not renamed: unidict-1.12.2-2.9.3.jar already exists
VanillaFix-1.0.10-99.jar not renamed: vanillafix-1.0.10-99.jar already exists
WailaHarvestability-mc1.12-1.1.12.jar not renamed: wailaharvestability-mc1.12-1.1.12.jar already exists
WanionLib-1.12.2-2.4.jar not renamed: wanionlib-1.12.2-2.4.jar already exists

我如何使其与 wsl 一起工作?它在我的 Ubuntu 系统上完美运行。

答案1

我假设这与不区分大小写的文件名有关,因此如果rename检查目标文件是否存在,它会看到原始文件并停止以避免破坏它。

我的系统上的 Perl 重命名有这个选项,看起来它可以在这里工作:

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

即使这不起作用,您也应该能够将文件重命名为不仅仅是大小写更改的名称。例如,x在更改大小写时在开头添加一个,然后删除它x

rename 'y/A-Z/a-z/; s/^/x/' *
rename 's/^x//' *

foo(当然,如果您有名为和的文件,则这不起作用xfoo,但您始终可以将前缀更改为其他名称。)

相关内容