重命名命令出错

重命名命令出错

我在重命名以下文件时遇到问题

-data-02-03-04.dat

我猜问题出在以破折号开头的文件名上。我尝试重命名时收到以下错误。

rename -data-02-03-04.dat data020304.dat
Unknown option: data-02-03-04.dat
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ]
    [ -e|-E perlexpr]*|perlexpr [ files ]

答案1

问题实际上来自于以破折号开头的文件名,因此它被视为命令的选项rename而不是参数。为了避免这个问题,只需遍历文件的路径:

mv ./-data-02-03-04.dat data020304.dat

我使用的是mv对单个文件更方便的命令。rename命令主要用于批量重命名,需要perl正则表达式。

正如所指出的这里,处理该问题的另一种方法是添加双破折号--来表示命令选项的结束:

mv -- -data-02-03-04.dat data020304.dat

答案2

rename不做你认为它做的事。

您可以执行以下操作之一:

mv ./-data-02-03-04.dat data020304.dat
mv -- -data-02-03-04.dat data020304.dat

如果您确实想使用重命名,正确的语法是:

rename 's/-//g' ./-data-02-03-04.dat
rename 's/-//g' -- -data-02-03-04.dat

相关内容