重命名命令出错

Loy*_*yed 3 rename mv

我有重命名以下文件的问题

-data-02-03-04.dat
Run Code Online (Sandbox Code Playgroud)

我猜这个问题来自以破折号开头的文件名。尝试重命名时出现以下错误。

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 ]
Run Code Online (Sandbox Code Playgroud)

小智 6

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

mv ./-data-02-03-04.dat data020304.dat
Run Code Online (Sandbox Code Playgroud)

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

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

mv -- -data-02-03-04.dat data020304.dat
Run Code Online (Sandbox Code Playgroud)