首頁 > 檔案與目錄管理 > rename

rename: 批量檔案重新命名工具

`rename` 指令用於使用正規表達式一次性更改多個檔案的名稱。與 `mv` 不同,它在基於模式批量修改檔案名時非常有用。

概述

`rename` 是一個強大的指令,用於按照規則批量更改大量檔案名稱。此指令可以使用類似 `s/old_pattern/new_pattern/` 的 Perl 正規表達式語法來查找檔案名中的特定字串並將其替換為其他字串。例如,它可以輕鬆自動化將所有 `.jpeg` 副檔名更改為 `.jpg`,或將檔案名中的空格替換為底線 (`_`) 等操作。

主要特點

`rename` 指令的主要特點如下:

  • 一次性更改多個檔案的名稱。
  • 提供基於正規表達式的強大模式替換功能。
  • 與 `mv` 指令一次更改一個檔案不同,它針對批次操作進行了優化。
  • 支援 `dry run` 模式,可以預覽更改結果,防止出錯。

`rename` 與 `mv` 的差異

`rename` 和 `mv` 都用於更改檔案名稱,但在功能和目的上有所不同。

  • rename: 專門用於基於模式批量更改多個檔案的名稱。
  • mv: 用於更改或移動單一檔案或目錄的名稱。若要更改多個檔案,則需要腳本。

主要選項

我們根據目的將常用的 `rename` 指令選項進行了分組。

1) 批次更改

2) 幫助

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`rename` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

透過 `rename` 指令的各種使用範例來學習其功能。

更改檔案副檔名

rename 's/\.jpeg$/.jpg/' *.jpeg

將目前目錄中所有 `.jpeg` 副檔名更改為 `.jpg`。

更改檔案名中的特定字串

rename 's/^image_/photo_/' *.jpeg

將所有以 `image_` 開頭的檔案名中的 `image_` 更改為 `photo_`。

將空格替換為底線

rename 's/ /_/g' *

將檔案名中所有的空格 (` `) 替換為底線 (`_`)。

將大寫字母轉換為小寫字母

rename 'y/A-Z/a-z/' *

將所有檔案名中的大寫字母轉換為小寫字母。

預覽更改結果

rename -n 's/.html/.txt/' *.html

不實際更改檔案,而是預覽將 `.html` 副檔名更改為 `.txt` 時的結果。

安裝

`rename` 並非所有 Linux 發行版都預設包含,因此需要透過以下指令安裝。在某些發行版中,套件名稱可能有所不同,例如 `perl-rename` 或 `prename`。

Debian/Ubuntu

sudo apt update
sudo apt install rename

RHEL/CentOS/Fedora

sudo dnf install prename

Arch Linux

sudo pacman -S perl-rename

提示與注意事項

整理了使用 `rename` 指令時應注意的事項。

提示

  • 在正規表達式中,點 (`.`) 表示任何字元,因此在更改副檔名時,應使用反斜線 (`\`) 進行跳脫,例如 `\.jpeg`。
  • `rename` 是一個強大的工具,為避免錯誤,建議始終先使用 `-n` 選項來確認結果。
  • 如果檔案名中包含空格,則應使用引號 (`"`) 將其括起來作為參數傳遞。

相關命令

功能上相似或經常一起使用的命令。


相同類別命令