web-dev-qa-db-ja.com

sftp:フォルダに含まれる全てのファイル、ディレクトリ、サブディレクトリをアップロードします

マシンAではフォルダがあります

/home/a/

マシンBにはフォルダがあります

/home/b/

Sftpを使って/ home/aのすべてのファイル、ディレクトリ、サブディレクトリを/ home/bに転送したい。

sftp [email protected]
put /home/a/* /home/b/

しかし、それは動作しません、私はエラーメッセージが表示されます。
put命令をどのように修正できますか?

ありがとうございます。 :)

編集:

私はscpを使用して解決しました:

scp -r /home/a/ [email protected]:/home/b/
27
fibon82

Sftpと厳密には等価ではありませんが、 rsync はscpとsftpの非常に強力な代替手段です。変更されていないファイルをコピーしません。マシンAから削除されたファイルをマシンBから削除することもできます(もちろん、と言われた場合のみ)。

あなたの場合は、構文は次のようになります。

rsync -zrp /home/a/ [email protected]:/home/b/

-rオプションはファイルを再帰的にコピーするためのもので、-zは転送中の圧縮を有効にし、-pはコピー時にファイルのパーミッション(ファイルの作成、編集など)を保存します。もっと多くの選択肢が可能です。いつものように、manページを読んでください。

21
Karolos

sftpでは、このコマンドはカレントディレクトリの内容をリモートカレントディレクトリに再帰的にアップロードします。

 put -r .

man sftp を参照してください。

16
Carlos Da Costa

scp(secure copy)は、安全なトンネルを介してファイルを転送するためのLinuxの事実上の事実です。あなたの場合は、再帰的なスイッチを使いたいでしょう。

scp -r /home/a/ [email protected]:/home/b/
9
deed02392

使ってみる

put -r /home/a/ /home/b/

詳細については、 this をご覧ください。

4
guest_who

実際には、put -rが機能するはずです。しかし、宛先フォルダはリモートホストに存在する必要があります。

sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder
 Couldn't canonicalize: No such file or directory
 ....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder/sourcefolder
 Entering sourcefolder/
 sourcefolder/file1
 sourcefolder/file2
0
Dieter