マシン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/
Sftpと厳密には等価ではありませんが、 rsync はscpとsftpの非常に強力な代替手段です。変更されていないファイルをコピーしません。マシンAから削除されたファイルをマシンBから削除することもできます(もちろん、と言われた場合のみ)。
あなたの場合は、構文は次のようになります。
rsync -zrp /home/a/ [email protected]:/home/b/
-r
オプションはファイルを再帰的にコピーするためのもので、-z
は転送中の圧縮を有効にし、-p
はコピー時にファイルのパーミッション(ファイルの作成、編集など)を保存します。もっと多くの選択肢が可能です。いつものように、man
ページを読んでください。
scp
(secure copy)は、安全なトンネルを介してファイルを転送するためのLinuxの事実上の事実です。あなたの場合は、再帰的なスイッチを使いたいでしょう。
scp -r /home/a/ [email protected]:/home/b/
実際には、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