特定の拡張子を持つファイルをscpでコピーする


19

.jpgとで.pngファイルをコピーしたいのですが、コピー元とscp同じフォルダに異なる拡張子のファイルがあります。私は次のことをしています:

scp user@someRemoteHost.com:/folder/*.{jpg,png} .

拡張機能タイプごとにパスワードを入力するよう求められます。パスワードを一度だけ入力するような方法でこれを行う方法はありますか?

回答:


31

次のように置き換えてください:

scp user@someRemoteHost.com:'/folder/*.{jpg,png}' .

一重引用符のペアに注意してください。あなたの場合、あなたのローカルシェルは式を評価して、実際にそれを変えています:

scp user@someRemoteHost.com:/folder/*.jpg user@someRemoteHost.com:/folder/*.png .

したがって、2つのパスワードが尋ねられました。このソリューションでは、単一引用符のペアがローカルシェルによる評価からそれを保護するため、式を評価しているのは(リモート)scpによって呼び出されるリモートシェルです。


そのディレクトリのすべてのサブディレクトリを含めるにはどうすればよいですか?
xxx ---

@ pushpen.paul pngファイルとjpgファイルのみを選択する必要はないが、すべてをコピーしたい場合scp -r user@someRemoteHost.com:'/folder' . は、たとえばそれを使用する 必要があります。また、これらのサブディレクトリでpngとjpgのみをコピーしたい場合は、おそらくscpまたはsftp(カスタムスクリプトが可能なsftp / lftpでない限り)は使用できませんが、代わりにssh + tarのペアのようなものを実行する必要があります。その場合、特定のニーズに合わせて独自の質問をする必要があります。
AB

7

サーバー間で操作をコピーするためにrsyncを使用する方が適切です。

 rsync -avzh user@remoteip:/path/*.jpg user@192.168.159.155:/path/*.png localserverpath

rsyncを使用すると、パスワードを1回だけ要求されます。

また、ファイルの転送中のrsyncでは、ファイルが存在するかどうかをターゲットの場所でチェックし、ソースの場所とターゲットの場所でコンテンツが同じかどうかもチェックします。

ファイルがターゲットの場所にも存在し、内容も同じ場合、そのファイルはコピーされません。ターゲットの場所に存在しないファイルのみをコピーするため、処理時間が短縮されます。

rsyncは多くの場合、増分バックアップツールとして使用されます。


8
使用されているrsyncかどうかに関係なくscp、ポイントは/folder/*.{jpg,png}引用する必要があるということ'/folder/*.{jpg,png}' です。
αғsнιη
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.