我有重命名以下文件的问题
-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)