Bilgisayarımdan veya dizüstü bilgisayarımdan USB sürücülerine kopyalanan dosyaların zaman damgalarıyla ilgili bir sorunum var: orijinal dosyanın ve kopyalanan dosyanın son değişiklik zamanı farklı. Bu nedenle, bilgisayarım ve USB sürücüm arasında dosya senkronizasyonu oldukça zahmetlidir.
Adım adım açıklama
GUI'yi veya komutunu kullanarak PC / dizüstü bilgisayarımdan USB sürücüsüne rastgele bir dosya kopyalarım
cp -a file.txt /media/gabor/CORSAIR/
Orijinal dosyanın son değişiklik zamanını kontrol ediyorum:
$ ls -l --time-style=full-iso file.txt -rw-rw-r-- 1 gabor gabor 0 2018-09-22 15:09:23.317098281 +0200 file.txt
Kopyalanan dosyanın son değişiklik zamanını kontrol ediyorum:
$ 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.txt
Gördüğünüz gibi, kopyalanan dosyanın son değişiklik süresindeki saniye sayısı sıfır ondalık basamağa kesilir. Ancak, komutu girersem
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
Çıktıyı alıyorum The last modification times are equal.
USB sürücüsünü çıkarır ve yeniden takarsam ve son iki komutu tekrar çalıştırırsam durum değişir:
$ 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.
Yeniden montajdan sonra, kopyalanan dosyanın son değiştirme süresi bir saniye daha azalır. Bununla birlikte, daha fazla sökme ve yeniden montaj, son değişiklik süresini artık etkilemez. Ayrıca, dosyalar üzerindeki test artık PC'deki dosyanın daha yeni olduğunu gösteriyor (olmasa da).
Durum, PC ve dizüstü bilgisayarımda son değişiklik zamanının PC'mde ve dizüstü bilgisayarımda farklı gösterilmesi gerçeğiyle daha da karmaşıklaşıyor , tarih ve saat ayarı bilgisayarımda ve dizüstü bilgisayarımda aynı olmasına rağmen fark tam 2 saat!
Daha fazla bilgi
Hem bilgisayarım hem de dizüstü bilgisayarım yukarıda açıklanan davranışı gösteriyor. Bilgisayarımda Ubuntu 14.04.5 (güvenilir) ve dizüstü bilgisayarımda Ubuntu 16.04.2 (xenial) var.
USB sürücülerimde vfat dosya sistemi var. Çıktısı mount | grep CORSAIR
benim PC'de olduğu
/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)
Çıktısı mount | grep CORSAIR
benim laptop olduğunu
/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)
Diğer USB sürücülerim de aynı davranışı gösteriyor.
Soru
Son değişiklik sürelerindeki fark bir şekilde ortadan kaldırılabilir mi? Örneğin, montaj / sökme sırasında başka parametreler kullanmak mı? Yoksa Ubuntu'da bir hata mı?
Orijinal ve kopyalanan dosyaların zaman damgalarının tam olarak aynı olmasını sağlamak istiyorum, böylece senkronizasyon daha verimli bir şekilde yapılabilir. Ayrıca, vfat dosya sistemini USB sürücülerimde tutmak istiyorum, böylece bunları Windows altında da kullanabiliyorum.
ext4
dosya sistemi gibi başka bir dosya sistemi oluşturmak istiyor musunuz ? (Microsoft tescilli dosya sistemleri, FAT32, exFAT, NTFS için linux desteğinin bazı sınırları vardır.) Microsoft tescilli dosya sistemlerine yalnızca değil , alternatif olarak da öneren bu bağlantıya bakın .ext4
udf