就像标题摘要,我有一个当地的目标,说:
/home/whoever/files_to_send
我想将该目录中的所有文件发送到远程位置:
[email protected]:/some/remote/directory
我如何使用SFTP
做到这一点?
PS。 我需要一个SFTP特定的答案,我不能使用SCP或其他任何东西。
您可以将put
命令与-r
选项一起用于recursion拷贝。
put [-Ppr] local-path [remote-path] Upload local-path and store it on the remote machine. If the remote path name is not specified, it is given the same name it has on the local machine. local-path may contain glob(3) char‐ acters and may match multiple files. If it does and remote-path is specified, then remote-path must specify a directory. If either the -P or -p flag is specified, then full file permissions and access times are copied too. If the -r flag is specified then directories will be copied recursively. Note that sftp does not follow symbolic links when performing recursive transfers.
$ sftp my.server.com Connected to my.server.com. sftp> put -r /home/whoever/files_to_send /some/remote/directory
$ cat batchfile put -r /home/whoever/files_to_send /some/remote/directory $ sftp -b batchfile my.server.com
你应该从中学到什么是阅读在线手册, sftp(1)
。
我想同步整个目录(所有的子文件夹也recursion)。 我不能用sftp
来完成,但我可以用yafc来完成
安装它(OSX)
brew install yafc
连接到服务器
yafc sftp://[email protected]
假设“example”文件夹在本地存在, -r
用于recursion, -f
用于强制(不要求覆盖)
put -rf example
在我的情况下,我也需要chmod文件,因为权限不被复制(甚至没有-p标志)
chmod 0755 example/*