Khi bạn di chuyển một tệp trong cùng một hệ thống tệp, mv
tách tệp khỏi vị trí cũ của nó và gắn tệp đó vào vị trí mới của nó; siêu dữ liệu như quyền vẫn giữ nguyên. Khi bạn di chuyển tệp sang một hệ thống tệp khác, mv
sao chép tệp, cố gắng sao chép càng nhiều siêu dữ liệu càng tốt và xóa bản gốc.
Vì bạn đang chuyển sang một hệ thống tệp khác và bạn không muốn sao chép nhiều siêu dữ liệu, bạn cũng có thể sao chép tệp sau đó xóa tệp gốc.
cp "$backupfile" "$destination" && rm "$backupfile"
Điều này bảo vệ các quyền của tệp ở một mức độ nào đó (ví dụ như khả năng đọc trên thế giới, khả năng thực thi). Thời gian sửa đổi của tập tin không được bảo tồn. Với GNUcp
, bạn có thể sử dụng --preserve=…
tùy chọn để tạo ra siêu dữ liệu nào được sao chép chính xác hơn, vd --preserve=mode,timestamps
.
Bạn cũng có thể sử dụng rsync
và nói với nó những gì bạn muốn bảo tồn. Tùy chọn này -a
có nghĩa là bảo tồn hầu hết các siêu dữ liệu, bao gồm chủ sở hữu nếu chỉ chạy dưới dạng root.
rsync -a --no-owner --no-group --remove-source-files "$backupfile" "$destination"