如何將目前目錄中具有特定副檔名的所有檔案重新命名為另一個副檔名?

如何將目前目錄中具有特定副檔名的所有檔案重新命名為另一個副檔名?

可能的重複:
重新命名多個檔案(更改副檔名)

假設在我的當前/工作目錄中我有五個檔案:

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

有什麼方法可以用擴展名重命名當前/工作目錄中的所有文件.xvg並給他們新的擴展(離開.eps單獨文件)?這可以用renamemv或來完成mmv嗎?我正在使用 Ubuntu Linux。謝謝!

答案1

對於您的特定問題,此命令將起作用。驗證您對建議的重新命名感到滿意,然後刪除-n以繼續操作。

rename -n 's/\.xvg$/.txt/' *.xvg

這基本上意味著對於當前目錄中具有擴展名的所有文件,找到以 ( ).xvg結尾的文件並將名稱的該部分更改為.$.xvg.txt

更多詳細資訊和示例如下。


是的,該rename命令將為您執行此操作。一個簡短的範例,其中我將所有檔案重新命名為擴展名.html.html_bak忽略目錄中的其他檔案。

我會強烈地建議使用-n命令列選項第一的(下面解釋)以查看在執行實際命令之前會發生什麼變化。

我從以下內容開始:

$ ls
a.html  a.txt  b.html  htmlfile

方法-n是進行“試運行”..只是顯示會發生什麼變化,而不是改變任何東西!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

原來的文件還在。

$ ls
a.html  a.txt  b.html  htmlfile

現在說實話:

$ rename  's/\.html$/.html_bak/' *

文件已被重新命名。

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

在上面的範例中,我用於*指定要考慮進行重新命名操作的檔案。我可以將其限制為.html僅具有*.html.

有關更多信息,請參閱重命名手冊頁

答案2

這可以這樣做:

rename 's/xvg$/txt/' *.xvg

glob 模式確保只有*.xvg檔案受到影響。

相關內容