
我在重命名以下文件時遇到問題
-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