16

片側からのファイルがたくさんあり(A)、他の場所に他のファイルがたくさんあります(B)

AからBにコピーしています。同じファイルがたくさんありますが、内容が異なる可能性があります。

通常、私はmc(Midnight Commander)を使用してそれを行い、「サイズが異なる場合は上書きする」を選択しました。ただし、サイズは同じでも内容が異なる場合があります。この場合、mcはファイルをBの場所に保持し、上書きしません。

mc上書きダイアログに「更新」という作業があります。何をしているのかわかりませんか?ヘルプではそのような情報はありません、多分これは解決策ですか?

そのため、すべてのファイルをAからBにコピーし、ファイルが存在し、コンテンツがAと異なる場合は、Bの場所でファイルを上書きするのに役立つソリューションを探しています。

「B」の場所にファイルが存在し(同じ名前)、内容が異なる場合は、毎回「A」の場所のファイルで上書きする必要があります。

解決策を知っていますか?

4

4 に答える 4

20

rsyncこれはファイルの日付に依存しないので使用しますが、実際にファイルの内容が変更されているかどうかを確認します。例えば:

#> rsync -cr <directory to copy FROM> <directory to copy TO>

Rsyncは、リモートホストとの間で、または現在のホスト上でローカルにファイルをコピーします(2つのリモートホスト間でのファイルのコピーはサポートされていません)。

-c, --checksum    skip based on checksum, not mod-time & size
-r, --recursive   recurse into directories

man rsyncその他のオプションと詳細については、を参照してください。

于 2016-05-29T14:48:28.603 に答える
18

コマンドラインを試しましたか:

cp -ru A/* B/

変更されたすべてのファイル(最新のタイムスタンプ)をディレクトリAからディレクトリBに再帰的にコピーする必要があります。

やりたいことに応じて、コマンドラインの-a代わりに使用することもできます。マニュアルページ-rを参照してください。cp

于 2011-10-27T10:31:01.043 に答える
0

ファイルを作成するときに作成するファイルのSHA-1ハッシュを保持するある種の「インデックス」ファイルを保持することをお勧めします。次に、「ソース」ハッシュを計算し、それをインデックスファイルの「宛先」ハッシュと比較できます。これは、このプロセスがファイルが宛先に書き込まれる唯一の方法である場合にのみ機能します。

于 2011-10-27T10:32:15.073 に答える
0

http://linux.math.tifr.res.in/manuals/man/mc.html

既存のファイルの上にファイルをコピーまたは移動しようとすると、置換ダイアログが表示されます。ダイアログには、両方のファイルの日付とサイズが表示されます。[はい]ボタンを押してファイルを上書きし、[いいえ]ボタンを押してファイルをスキップし、alLボタンを押してすべてのファイルを上書きし、nonEボタンを押して上書きしないようにし、[更新]ボタンを押してソースファイルがターゲットファイルよりも新しい場合に上書きします。中止ボタンを押すと、操作全体を中止できます

于 2018-04-28T10:53:43.833 に答える