web-dev-qa-db-ja.com

scpコマンドで移動先のフォルダを上書きする方法はありますか

Scp :)と同じように、scpコマンドを使っていくつかのファイルをリモートPCにコピーします。

ファイルのscpコピーのデフォルトの動作は、既存のファイルを上書きすることです。フォルダをコピーしたいので、基本的に同じことをします。

scp -r <source_path> user@myOtherPc:<dest_path>

<>の部分は私のフォルダパスです。しかし、これを実行すると、 "file exists"というメッセージが表示されます。これを回避する方法はありますか?ある種の強制的な上書き?

ありがとう、Fodder

35
code_fodder

前述したように、scpは既に存在しているファイルを楽しく上書きします。

「ファイルが存在する」問題は、フォルダーとファイルを同じ宛先に書き込む他のプロセス(並行scpプロセスなど)がある場合にのみ発生します。代わりにrsyncを使用することを検討してください。

22
nicolasochem

Levansのように、私はこれを複製することができませんでした、しかしあなたは代わりにsshの上にrsyncを使うことを考えましたか?大量のファイルをコピーしている場合は、rsyncの方がscpよりも優れた選択肢です。以下のような、オンラインでの良いガイドがたくさんあります。

http://troy.jdmz.net/rsync/index.htmlhttps://calomel.org/ rsync_tips.html

その最初のリンクはcronによる自動バックアップを扱うので、いくつかの指示(パスフレーズなしでsshキーを作成するような)はあなたには関係ないかもしれません。

4
Ben

転送しようとしている転送元ディレクトリと同じ名前のファイルが転送先ディレクトリに既に含まれる場合、このエラーメッセージを表示します。同じディレクトリ内のディレクトリと同じ名前のファイルを持つことはできません。

3
EvR2f