重命名指令出錯

重命名指令出錯

我在重命名以下文件時遇到問題

-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

相關內容