我有一些本地文件:
/doc/dir-monkey/monkey.txt
/doc/dir-monkey/monkey.xml
/doc/dir-dog/dog.txt
/doc/dir-dog/dog.xml
/doc/dir-cat/cat.txt
/doc/dir-cat/cat.xml
现在我想通过 scp 将它们上传到远程服务器
我想以相同的方式保留目录,并在必要时覆盖旧文件。我知道我一次只能上传一个文件,我发现了一些关于之前压缩文件然后远程解压缩它们的技巧。有这方面的详细说明吗?
我目前使用的是MacOSX 10.10,远程服务器如下:
Distributor ID: Debian
Description: Debian GNU/Linux 7.5 (wheezy)
Release: 7.5
Codename: wheezy
答案1
由于可用参数和选项各不相同,因此请务必参阅您的发行版的手册。使用man scp
。
对于 OSX 中使用 SCP 的递归复制,以下应该可以工作:
scp -r /local/directory [email protected]:/remote/directory
答案2
如 jas 所述, scp -r localDir user@server:remoteDir 应该执行递归复制。如果您担心文件的时间戳,请添加 -p 标志,并且它们也会保留在本地服务器上(否则它们将更改为复制时间)。
这对于少量数据来说是没问题的。如果您必须定期对大量(大量文件)执行此操作并且只想更新已更改的内容,那么我建议使用 rsync。
它会像这样工作:
rsync -avz locaDir user@remoteServer:remoteDir
不过,您的 osx 和 ubuntu 上需要 rsync(这是可能的;))。
答案3
我无法判断这是结构中的所有内容还是只是一个组件。如果这就是一切,你可以做类似的事情scp -r /doc remote:/doc_copy
。
如果这只是一个子集,那么在 scp 中完成这一切就更困难了。有些选项可能是一次 scp 一个,或者使用类似的东西rsync
(及其更具表现力的包含/排除界面)。