2016-09-13 217 views
1

當我製作乳膠文檔時,會創建具有相同基本名稱但擴展名不同的多個文件。 如果我想重命名原始文件,我還必須重命名文件夾中的每個其他文件。重命名所有具有相同基本名稱的文件

有沒有辦法做到以下幾點?

mv file_basename.* file_newname.[whatever was globbed] 

回答

1

讓我們考慮與這些文件的目錄:

$ ls 
file_basename.a file_basename.b file_basename.c 

現在,讓我們請運行perl rename實用程序來重命名文件:

$ prename 's/file_basename/file_newname/' * 
$ ls 
file_newname.a file_newname.b file_newname.c 

正如你可以看到所有的文件有新的名字。

prename,有時也叫rename,是perl包的一部分。

請注意,某些Linux發行版默認安裝了不同且不兼容的版本。如果您有其中之一,上述命令將不起作用。有關哪些發行版附帶prename或如何將其安裝到您的發行版的更多信息,請參閱here

0

這裏有一個簡單的bash腳本,它是(我們稱之爲rename-prefix):

#!/bin/bash 

basename="$1" 
newname="$2" 
for file in "$basename"*; do 
    mv -iv -- "$file" "$newname${file#$basename}" 
done 

它必須從文件所在的目錄執行。你這樣運行:

rename-prefix file_basename. file_newname. 
相關問題