回答:
やってみよう
rsync -a /from/file /dest/file
--append、などの他のオプションを使用できます-P (--partial --progress)。詳細については、man rsyncを参照してください。
またはcp、使用してcp -uいる場合はを使用します。
からman cp:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -uあなたがする必要があると思いますので...それだけチェックし、タイムスタンプ、サイズではないことから、気にしないかもしれないtouchあなたがそれを使用する必要がある場合は、最初のソースファイル。(または単に使用しますrsync。)
部分的なファイル転送のcp場合、必要なものではない場合があります。
rsync代わりに使用することをお勧めします。転送が失敗した場合でも、後でコマンドを再実行するだけで、不足しているファイルのみがコピーされます。
例:
$ rsync -aPEmivvz from/ to/
(ディレクトリにコピーfrom/しますto/)
以来rsync同期と各転送後に確認しない、ファイルが正しくコピーされている確保することは簡単です。
swichセットが-aPEmivvz私の標準であるゴーへの選択などのプラグインデバイス、のようなSDカード、などのネットワークや外付けドライブ、上のファイルをコピーするたびに
これらは私がほとんどいつも使用するスイッチです:
-a:「アーカイブ」に含まれる-rlptgo(再帰、シンボリックリンクとしてのシンボリックリンク、許可、時間、グループ、所有者)
-P:「部分的な進行状況」は、各ファイルの素晴らしい進行状況バーを表示します
-E:「実行可能性」は実行可能かどうかを保持します
-m: "noempty"は空のディレクトリをプルーニングします
-i: "summary"すべての更新の変更概要を出力
-vv:「より冗長」
-z:「圧縮」
cpこれには使用しないでください。他の人が述べているように、それは仕事に適したツールではありません。正しいツールはあなたの目標に依存します。
単純なコピーだけが必要な場合:
rsync /source /destinationフラグのいくつかのレベルで。いくつかの本当に良い例については、他の回答をご覧ください。
双方向の更新が必要な場合
unison行く方法です。Rsyncは、双方向同期を使用した競合解決ではあまりうまくいきません。特別に削除します。したがって、双方向コピーを起動する必要がありますunison
バックアップが必要で、ファイルがテキストベースの場合は、を使用してみてくださいgit。Gitはローカルで実行でき、「サーバー」は必要ありません。実際、gitサーバーはファイル共有方法にすぎません。バックアップドライブにgitリポジトリを完全に作成し、そこに「プッシュ」することができます。繰り返しますが、これはファイルがテキストベースで、一方向のバックアップを取得しようとしている場合にのみ本当に機能します。
一度だけではなくバックアップに行く場合は、deja-dupe、BackIntime、または同様のオプションを確認してください。ある時点でデータのスナップショットを取得します。それらはすべて、内部でrsyncを実行します。