宛先フォルダーを上書きするscpコマンドを取得する方法


41

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

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

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

<>の部分は私のフォルダーパスです。ただし、これを実行すると、「ファイルが存在します」というメッセージが表示されます。これを回避する方法はありますか?ある種の強制上書き?

ありがとう、飼料


2
パスの例をいくつか教えてください。私は自分のシステムでこれを再現するために実行しません。また、ファイルの許可を確認しましたか?
レヴァン

詳細モードを使用する場合、有用な情報は提供されますか?-v。また、宛先側で絶対パスまたは相対パスを使用していますか?宛先フォルダーが既に存在する場合、上書きするのではなく、宛先フォルダー内にソースパスを作成すると思います(testdir/testdir
2013

2
これを入手するのは奇妙です。たぶんscpコマンドnoclobberを持っていません ...
beroe

1
@レバンス私は許可を確認しませんでした、私はちょうど見て、あなたが正しいかもしれないと思います。ターゲット領域のすべてを削除し、「scp」コマンドと「root」ユーザーのみを使用して再び開始し、ファイル/フォルダーを複数回コピーできました:) ...持っていましたが、今では私はおそらくそれを理解することができる問題に「ハンドル」を持っています、ありがとう
-code_fodder

1
@beroeはい、これも私が考えたことです...それは私を混乱させましたが、私は許可でここで何らかのユーザーエラーを犯したと思います、私はまだLinuxの専門家ではありません:(しかし、私は冗長性を試してみます。私はより多くの情報を取得するために、そのような問題を持っている次回は、ありがとう。また私は時々あなたが「フォルダ内のフォルダ」ハプニングを得ることに気づいた...それはまた別の問題である:O
code_fodder

回答:


27

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

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


1
追加するだけです... ...そのファイルへの書き込みアクセス権がある
限り...-SDsolar

しかし、フォルダの場合、それはフォルダをマージするか、それを置き換えますか?
Dr_Hope

5

レバンスのように、私はこれを複製することができませんでしたが、代わりにrsyncをssh経由で使用することを検討しましたか?大量のファイルをコピーする場合は、rsyncがscpよりも優れたオプションである可能性があります。これらのオンラインには、次のような優れたガイドが多数あります。

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

この最初のリンクはcronを介した自動バックアップを扱っているため、一部の指示(パスフレーズなしでsshキーを作成するなど)はあなたに関係ないかもしれません。


おもしろいことに、そのようにrsyncを使用できるとは知りませんでした... manページをざっと見て、<source_path>と<user @ hostでscpと非常によく似た方法で使用できるように見えます: dest_path>パラメーター。destにあるもののステータスを気にせずに常にコピー/上書きしたいので、私はそれが私が望むものであると100%確信はありませんが、それでもいいアイデアです:)
code_fodder

ええ、変更された場合はファイルをコピーする必要があるため、プレイする価値があるかもしれません(または変更されたファイルの一部、再確認する必要があり、少し疲れすぎています)今)。
ベン

ハハ....それをチェックすることを心配しないで、私はそれを行うことができます...しかし、情報に感謝します:)
code_fodder

ああ、かっこいい、まぶたを開くための手段としてマッチ棒を見るのをやめることができます。;)
ベン

1
これは機能しますが、ハンマーを使ってハエを叩くようなものです。;-)
SDsolar

3

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

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