PCまたはラップトップからUSBドライブにコピーされたファイルのタイムスタンプに問題があります。元のファイルとコピーされたファイルの最終変更時刻が異なります。したがって、PCとUSBドライブ間でファイルを同期するのは非常に面倒です。
ステップごとの説明
- GUIまたはコマンドを使用して、PC /ラップトップからUSBドライブに任意のファイルをコピーします - cp -a file.txt /media/gabor/CORSAIR/
- 元のファイルの最終変更時刻を確認します。 - $ 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
- コピーしたファイルの最終変更時間を確認します。 - $ 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
- ご覧のとおり、コピーされたファイルの最終変更時刻の秒は、小数点以下がゼロに切り捨てられます。ただし、コマンドを入力すると - 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
出力を取得します The last modification times are equal.
- USBドライブをアンマウントして再マウントし、最後の2つのコマンドを再度実行すると、状況が変わります。 - $ 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.
- したがって、再マウント後、コピーされたファイルの最終変更時間はさらに1秒短縮されます。ただし、さらにアンマウントおよび再マウントしても、最終変更時刻には影響しません。また、ファイルのテストでは、PC上のファイルの方が新しいことが示されています(そうではありません)。 
状況は、ファイルの最終変更時刻がPCとラップトップで異なって表示されるという事実によってさらに複雑になります。違いは正確に2時間ですが、日付と時刻の設定はPCとラップトップで同じです。
さらに詳しい情報
上記のとおり、私のPCとラップトップの両方が動作を示しています。PCにUbuntu 14.04.5(信頼できる)があり、ラップトップにUbuntu 16.04.2(xenial)があります。
USBドライブにはvfatファイルシステムがあります。mount | grep CORSAIR 私のPCの出力は
/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)
mount | grep CORSAIR 私のラップトップでの出力は
/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)
私の他のUSBドライブも同じ動作を示します。
質問
最後の変更時間の差をどうにかして排除できますか?たとえば、マウント/アンマウント時に他のパラメーターを使用していますか?それともUbuntuのバグですか?
元のファイルとコピーされたファイルのタイムスタンプがまったく同じであるため、同期をより効率的に行うことができます。また、Windowsでもvfatファイルシステムを使用できるように、USBドライブにvfatファイルシステムを保持したいと思います。
ext4ファイルシステムなど)を作成しますか?(Microsoft独自のファイルシステム、FAT32、exFAT、NTFSのLinuxでのサポートにはいくつかの制限があります。)Microsoft独自のファイルシステムの代替としてだけでなく、このリンクを参照してください。ext4udf