2012-07-21 2 views
9

scpディレクトリ内のすべてのファイルをリモートマシンに再帰的にコピーし、元のファイル名を保持しますが、ディレクトリはコピーしませんか?現在のディレクトリを除く再帰的scp

dir1/file 
dir1/dir2/file2 

dir1の内容はコピーのみです。 dir1は作成されません。しかし、dir2ディレクトリはfile2で作成されます。

私はscp -r dir1 remote:/newfolderを試しましたが、remote/newfolderディレクトリにdir1を作成しました。私はそのディレクトリにdir1を作成したくありません。 dir1の中のすべてのファイルをnewfolderに入れてください。

答えて

19
cd dir1 
scp -r . remote:/newfolder 

をリモートマシン上で実行します。また好むかもしれない:同じ作業中に(それはcdscp操作を行い、サブシェルを起動するため)

(cd dir1; scp -r . remote:/newfolder) 

これは、元のディレクトリにシェルを残します。

8

これは、遠隔地のリモートへのシェル拡張DIR1/*によって作られたファイルのリストをコピー意味:これはscpに名前dir1で何かをするチャンスを与えて回避/新規フォルダ

scp -r dir1/* remote:/newfolder 
+0

私はこの答えが好きです。なぜなら、 'cd 'をする必要がないからです。 'scp'の後の次のステートメントが元のディレクトリにあることを期待している場合は、' cd'をもう一度やり直す必要があります。 – jreancsu

1

相対パスでドット構文を使用できます。

scp -r dir1/. remote:/newfolder 

リモートディレクトリが存在しない場合は作成されます。

関連する問題