私はしばしばAndroid携帯電話とLinux PCの間で音楽フォルダを同期したいと思います。携帯電話のファイルはFAT32を使用してSDカードに保存され、WindowsノートブックまたはLinuxデスクトップからインポートできます。メタデータだけを比較したいです。それ以外の場合は、コンテンツの比較に時間がかかります。
Meldまたはrsyncを使用して違いを見つけると、誤った肯定が発生します。これは、FAT32がファイル時間を2秒の解像度とローカル時間(イギリス時間)で保存するのに対して、Linuxではファイルの変更時間がサブフォルダに保存されるためです。 -滞在。 2番目の解像度とUTC。そのため、冬にSDカードにコピーしたファイルを見ると、今は夏であり、その逆の場合も、正確に1時間(精度は2秒)の時差がわかります。
フォルダをスキャンしてファイル時間が2秒間隔である場合、または59m58sから1h00m02sの間で同じと見なすことができるツールはありますか?
答え1
これにより、rsync
時間を完全に無視できます--ignore-times
。
または、タイムスタンプが特定の秒(3602の場合は1時間+ 2秒)だけ異なることを許可します--modify-window=3602
(タイムスタンプが30分ずつ異なるファイルもこのウィンドウに属することに注意してください)。
3番目のオプションは、上記の時間を無視し(サイズのみを考慮することもできます--size-only
)、その時間をチェックサム計算に強制することです--checksum
。
答え2
--modify-window
オプションの使用同期2秒の解像度を平坦化します。
--modify-window=NUM, -@ When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify- window value. The default is 0, which matches just integer seconds. If you specify a negative value (and the receiver is at least version 3.1.3) then nanoseconds will also be taken into account. Specifying 1 is useful for copies to/from MS Windows FAT filesystems, because FAT represents times with a 2-second resolution (allowing times to differ from the original by up to 1 second).
答え3
fdupes
重複ファイルを見つけて削除できるコマンドラインプログラムを使用できます。オプションで、指定された時間(秒)の修正時間差を無視できます。を使用するには、fdupes
次のコマンドを実行します。
fdupes -r -S -T2m /path/to/directory1 /path/to/directory2
最大2分の時間差を無視しながら、両方のディレクトリで重複ファイルを繰り返し検索します。
dirsyncpro
(ファイルとフォルダを同期してバックアップするためのクロスプラットフォームプログラム)を使用して、新しいプロファイルを作成し、ソースディレクトリとターゲットディレクトリを設定することもできます。次に、[オプション]タブに移動してオプションの比較を選択します。 「時間」セクションで「視差を無視」オプションを選択し、範囲を59分58秒から1時間00分2秒の間に設定できます。