Tôi gặp vấn đề với dấu thời gian của các tệp được sao chép từ PC hoặc máy tính xách tay sang ổ USB: thời gian sửa đổi cuối cùng của tệp gốc và của tệp được sao chép là khác nhau. Do đó, việc đồng bộ hóa các tệp giữa PC và ổ USB của tôi khá cồng kềnh.
Mô tả từng bước
Tôi sao chép một tệp tùy ý từ PC / máy tính xách tay của mình vào ổ USB bằng GUI hoặc bằng lệnh
cp -a file.txt /media/gabor/CORSAIR/Tôi kiểm tra thời gian sửa đổi cuối cùng của tệp gốc:
$ ls -l --time-style=full-iso file.txt -rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txtTôi kiểm tra thời gian sửa đổi cuối cùng của tệp được sao chép:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:23.000000000 +0200 /media/gabor/CORSAIR/file.txtNhư bạn có thể thấy, các giây trong thời gian sửa đổi cuối cùng của tệp được sao chép được rút ngắn thành 0 chữ số thập phân. Tuy nhiên, nếu tôi nhập lệnh
if ! [ file.txt -nt /media/gabor/CORSAIR/file.txt ] && ! [ file.txt -ot /media/gabor/CORSAIR/file.txt ]; then echo "The last modification times are equal."; fi
Tôi nhận được đầu ra The last modification times are equal.
Tình huống thay đổi nếu tôi ngắt kết nối và nối lại ổ USB và tôi thực hiện lại hai lệnh cuối cùng:
$ ls -l --time-style=full-iso /media/gabor/CORSAIR/file.txt -rw-r--r-- 1 gabor gabor 0 2018-09-22 15:09:22.000000000 +0200 /media/gabor/CORSAIR/file.txt $ if [ file.txt -nt /media/gabor/CORSAIR/file.txt ]; then echo "The file is newer on the PC."; fi The file is newer on the PC.Vì vậy, sau khi kết thúc, thời gian sửa đổi cuối cùng của tệp được sao chép sẽ giảm thêm một giây. Tuy nhiên, việc tiếp tục và kết nối lại không ảnh hưởng đến lần sửa đổi cuối cùng nữa. Ngoài ra, thử nghiệm trên các tệp hiện cho thấy tệp trên PC mới hơn (mặc dù không phải vậy).
Tình hình còn phức tạp hơn bởi thực tế là thời gian sửa đổi lần cuối của các tệp được hiển thị khác nhau trên PC và trên máy tính xách tay của tôi , sự khác biệt chính xác là 2 giờ, mặc dù cài đặt ngày và giờ giống nhau trên PC và trên máy tính xách tay của tôi!
Thêm thông tin
Cả PC và máy tính xách tay của tôi đều thể hiện hành vi, được mô tả ở trên. Tôi có Ubuntu 14.04.5 (đáng tin cậy) trên PC và Ubuntu 16.04.2 (xenial) trên máy tính xách tay của tôi.
Ổ USB của tôi có hệ thống tập tin vfat. Đầu ra của mount | grep CORSAIR PC của tôi là
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)
Đầu ra của mount | grep CORSAIR máy tính xách tay của tôi là
/dev/sdb1 on /media/gabor/CORSAIR type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
Các ổ USB khác của tôi cho thấy hành vi tương tự.
Câu hỏi
Sự khác biệt trong lần sửa đổi cuối cùng có thể được loại bỏ bằng cách nào đó? Ví dụ, sử dụng các tham số khác khi gắn / ngắt kết nối? Hay là một lỗi trong Ubuntu?
Tôi muốn đạt được rằng dấu thời gian của các tệp gốc và tệp được sao chép hoàn toàn giống nhau, để việc đồng bộ hóa có thể được thực hiện hiệu quả hơn. Ngoài ra, tôi cũng muốn giữ hệ thống tệp vfat trên các ổ USB của mình để tôi cũng có thể sử dụng chúng trong Windows.
ext4hệ thống tệp linux ? (Sự hỗ trợ trong linux cho các hệ thống tệp độc quyền của Microsoft, FAT32, exFAT, NTFS, có một số giới hạn.) Xem liên kết này gợi ý không chỉext4mà cònudflà lựa chọn thay thế cho các hệ thống tệp độc quyền của Microsoft.