試行に失敗した後に残りのファイルをcpする方法


23

あるドライブから別のドライブに大きなディレクトリをコピーしようとしています。終了する前に誤ってログアウトしたため、ファイルの80%しかコピーされませんでした。ゼロから始めずに残りのファイルをコピーする方法はありますか?

回答:


35

やってみよう

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.

1
Rahul cusにそれを渡さなければなりません。彼はあなたにそれを打ち負かしただけです。
barro32

3
最初のコピーが突然終了した場合は、ファイルの一つは部分的にしかコピーすることができ、そしてcp -uあなたがする必要があると思いますので...それだけチェックし、タイムスタンプ、サイズではないことから、気にしないかもしれないtouchあなたがそれを使用する必要がある場合は、最初のソースファイル。(または単に使用しますrsync。)
ilkkachu

@ilkkachuそうです。すぐに更新します。
ラーフル

cpは、単一のファイルを部分的にのみ転送したままにしますか?存在する場合、-uは、部分的にしか機能していないディレクトリを残すように見えます。
トレバー

15

部分的なファイル転送のcp場合、必要なものではない場合があります。

rsync代わりに使用することをお勧めします。転送が失敗した場合でも、後でコマンドを再実行するだけで、不足しているファイルのみがコピーされます。

例:

$ rsync -aPEmivvz from/ to/

(ディレクトリにコピーfrom/しますto/

以来rsync同期と各転送後に確認しない、ファイルが正しくコピーされている確保することは簡単です。

swichセットが-aPEmivvz私の標準であるゴーへの選択などのプラグインデバイス、のようなSDカード、などのネットワークや外付けドライブ、上のファイルをコピーするたびに

これらは私がほとんどいつも使用するスイッチです:

-a:「アーカイブ」に含まれる-rlptgo(再帰、シンボリックリンクとしてのシンボリックリンク、許可、時間、グループ、所有者)

-P:「部分的な進行状況」は、各ファイルの素晴らしい進行状況バーを表示します

-E:「実行可能性」は実行可能かどうかを保持します

-m: "noempty"は空のディレクトリをプルーニングします

-i: "summary"すべての更新の変更概要を出力

-vv:「より冗長」

-z:「圧縮」


6

cpこの場合よりもおそらくあなたが望むのはであるrsync

1つのディレクトリ構造を新しい場所に再帰的にコピーするだけです:

rsync -av /path/to/source /path/to/destination 

4

cpこれには使用しないでください。他の人が述べているように、それは仕事に適したツールではありません。正しいツールはあなたの目標に依存します。

単純なコピーだけが必要な場合:

rsync /source /destinationフラグのいくつかのレベルで。いくつかの本当に良い例については、他の回答をご覧ください。

双方向の更新が必要な場合

unison行く方法です。Rsyncは、双方向同期を使用した競合解決ではあまりうまくいきません。特別に削除します。したがって、双方向コピーを起動する必要がありますunison

バックアップが必要で、ファイルがテキストベースの場合は、を使用してみてくださいgit。Gitはローカルで実行でき、「サーバー」は必要ありません。実際、gitサーバーはファイル共有方法にすぎません。バックアップドライブにgitリポジトリを完全に作成し、そこに「プッシュ」することができます。繰り返しますが、これはファイルがテキストベースで、一方向のバックアップを取得しようとしている場合にのみ本当に機能します。

一度だけではなくバックアップに行く場合は、deja-dupe、BackIntime、または同様のオプションを確認してください。ある時点でデータのスナップショットを取得します。それらはすべて、内部でrsyncを実行します。


4

また、すべてのファイルを再度コピーし、上書きごとに確認を求めてから、質問に自動的にnoと答えることもできます。

yes n | cp -i /source /dest

(おそらく、もっと多くのオプションを使用している-rので、cp -pri /source /dest...のように追加してください)


3

rsync次のオプションを指定してコマンドを使用します。

rsync --progress --partial --append /source_file /destination_file
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.