Linux

如何在 Unix 的單個命令或腳本中重命名多個文件?

  • November 18, 2018

我有以下文件列表

aro_tty-mIF-45875564pmo_opt
aro_tty-mIF-45875664pmo_opt
aro_tty-mIF-45875964pmo_opt
aro_tty-mIF-45875514pmo_opt
aro_tty-mIF-45875524pmo_opt

我需要重命名為

aro_tty-mImpFRA-45875564pmo_opt
aro_tty-mImpFRA-45875664pmo_opt
aro_tty-mImpFRA-45875964pmo_opt
aro_tty-mImpFRA-45875514pmo_opt
aro_tty-mImpFRA-45875524pmo_opt

大多數標準 shell 提供了一種在 shell 變數中進行簡單文本替換的方法。http://tldp.org/LDP/abs/html/parameter-substitution.html解釋如下:

${var/Pattern/Replacement}

First match of Pattern, within var replaced with Replacement.

所以使用這個腳本來遍歷所有適當的文件並重命名它們:

for file in aro_tty-mIF-*_opt
do
   mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done

我添加了一個 -i 選項,因此您有機會確認每個重命名操作。與往常一樣,在進行大量重命名或刪除之前,您應該備份所有文件。

引用自:https://unix.stackexchange.com/questions/102647