mmv Linux là tiện ích dòng lệnh mạnh mẽ cho phép đổi tên, di chuyển hoặc sao chép nhiều file cùng lúc dựa trên các mẫu ký tự đại diện. Khác với lệnh mv tiêu chuẩn chỉ xử lý từng file hoặc di chuyển đơn thuần, mmv sử dụng cơ chế khớp mẫu thông minh, giúp thực hiện thay đổi phần mở rộng, thêm tiền tố/hậu tố hoặc đảo vị trí tên file một cách an toàn và chính xác. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn cách sử dụng lệnh mmv chi tiết.
Những điểm chính
- Định nghĩa mmv Linux: Hiểu rõ
mmvlà công cụ dòng lệnh dùng để đổi tên, di chuyển, sao chép nhiều file cùng lúc dựa trên các mẫu ký tự đại diện. - Những lợi ích khi sử dụng: Nắm được các ưu điểm vượt trội của
mmvnhư đổi tên hàng loạt linh hoạt, chế độ dry-run an toàn và khả năng phát hiện xung đột tự động. - Hướng dẫn cài đặt: Biết cách cài đặt
mmvnhanh chóng trên các bản phân phối Linux phổ biến như Ubuntu, Arch và Fedora. - Cú pháp và nguyên lý hoạt động: Nắm vững cú pháp cơ bản và ý nghĩa của các ký hiệu đặc biệt (
*,#1,#2) để sử dụng lệnh một cách chính xác. - Các trường hợp sử dụng thực tế: Thành thạo các lệnh
mmvthực tế để giải quyết các vấn-đề hàng ngày như thay đổi phần mở rộng, thêm tiền tố và đảo vị trí tên file. - So sánh với các công cụ khác: Phân biệt được sự khác biệt giữa
mmv,renamevàmvđể chọn đúng công cụ cho từng tác vụ. - Những lưu ý khi sử dụng: Nắm được các lưu ý quan trọng để sử dụng
mmvmột cách an toàn và hiệu quả, tránh các lỗi phổ biến như không bao quanh pattern bằng dấu ngoặc kép. - Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các câu hỏi thực tế về mức độ an toàn, khi nào nên dùng
renamevà cách tránh ghi đè file.
mmv Linux là gì?
mmv trong Linux là một tiện ích dòng lệnh dùng để đổi tên, di chuyển, sao chép hoặc tạo link cho nhiều file cùng lúc dựa trên pattern. Lệnh này cho phép thao tác hàng loạt với file như: move, copy, append, hard link, symlink chỉ bằng một câu lệnh. Khác với mv chỉ làm với từng file hoặc kết hợp shell loop, mmv làm trực tiếp trên nhiều file nhờ cơ chế khớp mẫu như *, ? và các biến #1, #2,… trong tên đích.
Cú pháp của lệnh mmv Linux như sau:
mmv [options] source_pattern target_pattern.Trong đó:
- source_pattern: Là pattern để chọn các file cần xử lý.
- target_pattern: Là mẫu tên/đường dẫn mới, trong đó #1, #2,… đại diện cho phần chuỗi khớp với các wildcard tương ứng trong source_pattern.

Những lợi ích khi sử dụng mmv
- Đổi tên hàng loạt với mẫu: mmv cho phép bạn sử dụng wildcards và ký tự đại diện để đổi tên nhiều file cùng lúc, thay vì phải đổi tên từng file một như lệnh mv thông thường.
- Thêm tiền tố/hậu tố linh hoạt: Với mmv, bạn có thể dễ dàng thêm tiền tố hoặc hậu tố vào tên file, điều này rất hữu ích khi bạn cần tổ chức file theo ngày hoặc dự án.
- Nhiều chế độ hoạt động: mmv không chỉ hỗ trợ di chuyển file mà còn cung cấp nhiều chế độ khác nhau như sao chép, tạo hard link, symbolic link và thêm nội dung file.
- Chế độ dry-run an toàn: mmv cho phép bạn sử dụng tùy chọn -n để kiểm tra trước những gì sẽ thay đổi mà không thực hiện bất kỳ hành động nào trên hệ thống.
- Phát hiện xung đột file tự động: Bạn sẽ nhận được cảnh báo từ mmv khi hai hoặc nhiều file sẽ được đổi tên thành cùng một tên, từ đó ngăn chặn việc xóa hay ghi đè file không mong muốn.
- Xử lý đệ quy trong thư mục con: mmv hỗ trợ tùy chọn -r giúp bạn đổi tên file trong toàn bộ cây thư mục con một cách tự động.
- Chế độ verbose theo dõi chi tiết: mmv cung cấp tùy chọn -v để hiển thị từng file được xử lý, giúp bạn theo dõi tiến trình công việc một cách rõ ràng.
- Xử lý file ẩn: Bạn có thể sử dụng tùy chọn -a để bao gồm file ẩn trong quá trình khớp mẫu tìm kiếm.
- Tiết kiệm thời gian hàng loạt: mmv có khả năng xử lý hàng trăm hay hàng nghìn file một lúc, giúp bạn giảm đáng kể thời gian so với việc thực hiện thủ công.

Hướng dẫn cài đặt mmv
mmv thường không được cài đặt mặc định trên một số bản phân phối Linux, bạn có thể cài đặt thông qua trình quản lý gói tương ứng:
- Đối với Ubuntu / Debian:
sudo apt update
sudo apt install mmv- Đối với Arch Linux/Manjaro:
pacman -S mmv- Đối với Fedora:
dnf install mmvSau khi cài đặt xong, bạn có thể kiểm tra bằng lệnh sau:
mmv --version
Cú pháp và nguyên lý hoạt động
Cấu trúc lệnh cơ bản của mmv:
mmv [option] <mẫu_nguồn> <mẫu_đích>Trong đó:
- <mẫu_nguồn>: Định dạng file đầu vào cần tìm kiếm.
- <mẫu_đích>: Định dạng tên mới mong muốn.
- [option]: Các tùy chọn bổ sung, bạn có thể xem danh sách đầy đủ qua lệnh
--help.

Bảng ký hiệu đặc biệt:
| Ký hiệu | Ý nghĩa |
|---|---|
* | Khớp với bất kỳ chuỗi ký tự nào trong tên file nguồn. |
#1 | Đại diện cho chuỗi ký tự khớp với dấu * đầu tiên. |
#2, #3… | Đại diện cho các phần khớp với dấu * thứ 2, thứ 3 tương ứng. |
Các trường hợp sử dụng mmv Linux thực tế
Dưới đây là các ví dụ áp dụng mmv để giải quyết các vấn dề quản lý file phổ biến:
1. Thay đổi phần mở rộng hàng loạt
Để chuyển đổi toàn bộ file văn bản .txt sang định dạng backup .bak, bạn thực hiện lệnh sau đây:
mmv '*.txt' '#1.bak'Trong trường hợp này, dấu * khớp với phần tên (ví dụ: report trong report.txt). Ký hiệu #1 sẽ lấy lại giá trị report và ghép với đuôi mới .bak.

2. Thêm tiền tố cho file
Để thêm chuỗi new_ vào đầu tên của tất cả các file hiện có, bạn thực hiện lệnh sau:
mmv '*' 'new_#1'
Khi đó, file report.bak sẽ trở thành new_report.bak.
3. Di chuyển file vào thư mục con
Để gom toàn bộ file sang thư mục backup/, trước tiên bạn cần tạo thư mục backup rồi sau đó dùng lệnh sau:
mmv '*' 'backup/#1'Lệnh này sẽ chuyển các file như trong thư mục hiện tại vào thư mục backup/ mà vẫn giữ nguyên tên file.

4. Đảo vị trí cấu trúc tên file
Để đổi định dạng tên file từ Năm_Tên.đuôi (VD: 2023_invoice.pdf) sang Tên-Năm.đuôi (VD: invoice-2023.pdf), bạn thực hiện lệnh sau:
mmv '*_*.pdf' '#2-#1.pdf'
Cơ chế:
*thứ nhất (#1) khớp với2023.*thứ hai (#2) khớp vớiinvoice.- Mẫu đích đảo ngược vị trí thành
#2-#1.
So sánh mmv, rename và mv
Bảng dưới đây tóm tắt sự khác biệt kỹ thuật giữa các công cụ đổi tên:
| Tính năng | mmv | rename | mv |
|---|---|---|---|
| Đổi tên hàng loạt | Có (Dựa trên Wildcard). | Có (Dựa trên Regex/Perl). | Không (Chỉ từng file). |
| Cú pháp | Đơn giản, dễ nhớ. | Phức tạp (cần kiến thức Regex). | Cơ bản. |
| Di chuyển file | Có (Hỗ trợ đổi đường dẫn). | Không. | Có. |
| Yêu cầu cài đặt | Cần cài thêm. | Cần cài thêm. | Mặc định có sẵn. |
Những lưu ý khi sử dụng lệnh mmv Linux
- Cần bao quanh pattern bằng dấu ngoặc kép: Vì shell thường mở rộng wildcards trước khi truyền tham số cho mmv, bạn cần bao quanh pattern bằng dấu ngoặc kép (“) để ngăn shell xử lý chúng, chỉ để mmv xử lý.
- Xung đột file được phát hiện tự động: mmv phát hiện khi hai hoặc nhiều file sẽ được di chuyển đến cùng một tên đích trước khi thực hiện bất kỳ hành động nào, nhưng bạn cần xác nhận để tiếp tục.
- Sử dụng tuỳ chọn -g hoặc -t khi chạy trong script: Khi chạy mmv trong background hoặc script shell, bạn nên sử dụng -g (go – bỏ qua lỗi) hoặc -t (terminate – dừng khi có lỗi) để tránh việc chờ câu hỏi tương tác.
- Tuỳ chọn -d cho phép ghi đè không cần xác nhận: Nếu bạn sử dụng -d (delete), mmv sẽ thực hiện tất cả các xóa hoặc ghi đè file mà không cần xác nhận.
- Pattern match theo thứ tự: Nếu file khớp với nhiều pattern from, pattern to của pair đầu tiên sẽ được sử dụng và những pattern sau bị bỏ qua.
- Kiểm tra quyền truy cập file: Bạn cần đảm bảo có quyền đầy đủ để đọc, ghi và xóa file trong thư mục nguồn và đích.
- Không tự động tạo thư mục đích: Nếu thư mục đích không tồn tại, mmv sẽ báo lỗi nên bạn cần tạo thư mục trước.

Câu hỏi thường gặp
mmv có an toàn hơn mv khi đổi tên hàng loạt không?
mmv an toàn hơn mv khi đổi tên hàng loạt vì hỗ trợ chế độ dry-run với tùy chọn -n, cho phép xem trước toàn bộ thao tác mà không thay đổi file thật. Ngoài ra, mmv còn có cơ chế phát hiện xung đột tên và có thể cảnh báo hoặc dừng khi nhiều file sẽ trùng một tên đích.
Khi nào nên dùng mmv, khi nào nên dùng rename?
– mmv phù hợp khi bạn cần đổi tên hàng loạt dựa trên cấu trúc tên file đơn giản với wildcard như *, ? và các phần #1, #2… trong tên đích.
– rename thích hợp hơn khi quy tắc đổi tên phức tạp, cần dùng Regular Expression/Perl (ví dụ thay thế chuỗi trong nhiều vị trí hoặc xử lý mẫu nâng cao).
Làm sao để tránh ghi đè file khi dùng mmv?
Có thể dùng tùy chọn bảo vệ mục tiêu như -p để không ghi đè file đích nếu đã tồn tại hoặc kết hợp -n để kiểm tra trước toàn bộ kết quả khớp mẫu. Ngoài ra, mmv sẽ phát hiện và cảnh báo khi nhiều file nguồn dẫn đến cùng một tên đích, giúp tránh mất dữ liệu ngoài ý muốn.
mmv là công cụ tối ưu cho các tác vụ đổi tên file hàng loạt dựa trên quy luật cấu trúc đơn giản. Với cú pháp trực quan sử dụng * và #, mmv giúp bạn thao tác nhanh chóng, an toàn và giảm thiểu sai sót so với việc sử dụng các vòng lặp shell script phức tạp. Đối với các nhu cầu đổi tên dựa trên Regular Expression nâng cao, rename có thể là lựa chọn thay thế, nhưng mmv vẫn là giải pháp cân bằng nhất giữa tính năng và sự tiện dụng.




