我在重命名以下文件时遇到问题
-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