概述
mmv 是 'mass move' 的縮寫,是一個專門用於一次性處理多個檔案的實用工具。與主要用於移動/重新命名單個檔案的 `mv` 不同,mmv 使用 `*.jpeg` 等萬用字元模式來定義原始檔案集合,並將其轉換為新模式以建立目標檔案集合。特別是,`rename` 專注於重新命名功能,而 `mmv` 的優勢在於它整合了複製 (`cp`)、連結 (`ln`) 和移動 (`mv`) 等所有功能。
主要特點
mmv 指令的主要特點如下:
- 使用萬用字元模式批次處理多個檔案。
- 整合提供移動 (`mv`)、複製 (`cp`)、連結 (`ln`) 和重新命名檔案的功能。
- 類似於 `rename`,但功能更豐富且使用方式更直觀。
- 發生衝突時,會輸出警告訊息以防止錯誤。
mmv 與 rename 的差異
mmv 和 rename 都用於批次重新命名檔案,但在操作方式上有所不同。
- mmv: 使用萬用字元 (`*`、`?`、`[ ]`) 定義模式,並使用數字 (#1、#2) 重構捕獲的部分。還提供複製/移動/連結功能。
- rename: 專門用於使用 Perl 正規表達式 (`s/pattern/replacement/`) 重新命名。
主要選項
mmv 指令可以透過檔案處理方式和選項來控制詳細的操作。
1) 檔案處理選項
2) 模式匹配
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`mmv` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 mmv 指令的各種使用範例來學習其功能。
更改檔案副檔名
mmv '*.jpeg' '#1.jpg'
將當前目錄中所有 `.jpeg` 副檔名更改為 `.jpg`。
在檔案名稱中添加字首
mmv '*.txt' 'doc_#1.txt'
將 `doc_` 字首添加到所有 `.txt` 檔案。
移動目錄
mmv '*.log' '/var/log/#1.log'
將當前目錄中所有 `.log` 檔案移動到 `/var/log` 目錄。
更改大小寫
mmv '*.*' '#l1.#l2'
將檔案名稱中的大寫字母更改為小寫字母。
預覽更改結果
mmv -n '*.bak' '#1.old'
不實際更改檔案,而是預先查看將 `.bak` 副檔名更改為 `.old` 時的結果。
安裝
mmv 預設不包含在大多數 Linux 發行版中,因此需要使用以下指令進行安裝。
Debian/Ubuntu
sudo apt update
sudo apt install -y mmv
RHEL/CentOS/Fedora
sudo dnf install -y mmv
Arch Linux
sudo pacman -S mmv
提示與注意事項
整理了使用 mmv 指令時應注意的事項。
提示
- mmv 的模式語法類似於 Shell 的萬用字元。`*` 表示任何字串,`?` 表示單個字元。`from_pattern` 中的 `*` 可以在 `to_pattern` 中以 `#1`、`#2` 等數字形式引用。
- 如果檔案名稱衝突,`mmv` 預設不會執行操作並輸出警告。可以使用 `-f` 選項忽略衝突並強制覆蓋,但請注意資料遺失的風險。
- 為避免正規表達式和萬用字元模式被 Shell 展開,務必使用單引號 (`'`) 將模式字串括起來。