mv (viết tắt từ move) làm một lệnh Unix dùng để di chuyển một hoặc nhiều file hoặc thư mục từ nơi này đến nơi khác. File gốc sẽ bị xoá, và file mới sẽ có tên giống tên cũ hoặc có tên mới. Nếu có thể (khi file gốc và file mới trên cùng hệ thống file), mv
sẽ chỉ đổi tên file. Quyền được ghi của thư mục bắt buộc phải có để lệnh thành công.
Trong tất cả các trường hợp, khi file đích trùng tên với một file đã tồn tại (trong thư mục đích), file đã tồn tại sẽ bị xóa. Nếu file đã tồn tại không có quyền ghi, nhưng thư mục đích có quyền ghi, mv
sẽ yêu cầu người dùng xác nhận (nếu đang chạy dưới dạng tương tác) trước khi xử lý. Nếu có tham số -f
thì sẽ xóa file cũ mà không cần hỏi.
Thông thường, khi di chuyển file trên cùng một đĩa, việc di chuyển (hoặc đổi tên) không giống như copy và xóa file. Khi di chuyển, các liên kết đến file sẽ được gỡ bỏ trong thư mục cũ và tạo một liên kết mới trong thư mục mới. Dữ liệu trong file sẽ không được đụng tới (có nghĩa là nó vẫn có inode cũ và nằm nơi cũ trên đĩa). Ví dụ, bạn không thể copy một file không có quyền đọc, nhưng có thể di chuyển (hoặc đổi tên) nó (nếu như có quyền ghi trên thư mục chứa file đó). Và cũng vì di chuyển file trên cùng một đĩa không cần truy xuất dữ liệu, cho nên tốc độ xử lý nhanh hơn rất nhiều, và cũng không tạo ra nhiều tác vụ đọc ghi đĩa.
Tuy nhiên, khi di chuyển file giữa các đĩa khác nhau thì tác vụ này sẽ hoạt động giống như copy và xóa.
mv myfile mynewfilename đổi tên file mv myfile /myfile di chuyển 'myfile' từ thư mục hiện tại đến thư mục gốc mv myfile dir/myfile di chuyển 'myfile' đến 'dir/myfile' tương đối so với thư mục hiện tại mv myfile dir giống lệnh trên (tên file sẽ được giữ nguyên) mv myfile dir/myfile2 di chuyển 'myfile' đễn 'dir' và đổi tên nó thành 'myfile2' mv foo bar baz dir di chuyển nhiều file đến 'dir' mv—help in hướng dẫn ngắn gọn về cách sử dụng và tham số
Trong tất cả các trường hợp, các file được di chuyển có thể là file hoặc thư mục.
Chú ý rằng khi gọi lệnh với 2 tham số (như mv name1 name2
hoặc mv name1 /dir/name2
), có thể có 3 hành vi khác nhau được thực hiện, tùy thuộc vào name2
không tồn tại, là file đã tồn tại, hoặc là thư mục đã tồn tại. Nếu người dùng muốn chỉ định đó là thư mục đã tồn tại thì thêm /.
(hoặc trong một số phiên bản thì chỉ cần /
) vào phía sau tên đích để yêu cầu hệ thống kiểm tra. Để di chuyển một file đến thư mục mới, thư mục đó cần phải được tạo trước.