2016-08-20 12 views
0

あるホストから別のホストに非常に大きなファイルを移動しようとしています。また、ファイル名が大きすぎるので、xargsを使用する必要があります。また、すべてのサブディレクトリが、私はソースで以下のコマンドは、現在のディレクトリにxargsでscpを使用するには?

find . -name "*" -type f -print0 | xargs -0 scp -r [email protected]:/path/to/destination 

をホスト使用していますが、それはあなたが使用する必要があるエラーの下

scp: /path/to/destination: not a regular file 

答えて

2

を投げても

をコピーする必要があります{}を使用して、宛先の前にsrcファイル名を入れます。ここに新しいコマンドがあります:

find . -name "*" -type f -print0 | xargs -0 -I {} scp -r {} [email protected]:/path/to/destination 
+0

ほぼありますが、私はそのサブディレクトリもコピーする必要がありますが、今はサブディレクトリの内容だけが移動されています。第2に、コマンドは1つのファイルをコピーするたびにパスワードを要求しています。どんな解決策ですか? –

+0

ディレクトリをコピーしたい場合は、findコマンドから-fパラメータを削除します。常にパスワードを入力したくない場合は、パブリックssh idをリモートマシンに追加し、ssh-agentを使用してあなたのマシンにあなたのキーを保存してください。からのコマンド。 –

+0

私は '-f'を削除し、サブディレクトリのファイルは2回コピーされています。 '/ path/to/destination'と'/path/to/destination/source_folder/'にもう一度。あなたが私の問題を理解できることを願っています。 –

関連する問題