以下命令对我来说非常适合单个文件:
scp your_username@remotehost.edu:foobar.txt /some/local/directory
我想要做的是递归(即对于服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后只下载服务器上小于某个值的文件(例如 10 mb)。
我怎么能那样做?
以下命令对我来说非常适合单个文件:
scp your_username@remotehost.edu:foobar.txt /some/local/directory
我想要做的是递归(即对于服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后只下载服务器上小于某个值的文件(例如 10 mb)。
我怎么能那样做?
使用 rsync。
您的命令可能如下所示:
rsync -az --max-size=10m your_username@remotehost.edu:foobar.txt /some/local/directory
-a
(归档模式 - 同步是递归的,转移所有权、属性、符号链接等)
-z
(压缩转移)
--max-size
(只复制文件到一定大小)
还有更多可能适合的标志。查看文档以获取更多详细信息 - http://linux.die.net/man/1/rsync
第一个选项:使用rsync
.
第二种选择,它不会是一条线,但可以用三到四行来完成:
使用 . 在远程系统上创建一个 tar 归档文件ssh
。使用 . 从远程系统复制 tar scp
。在本地解压缩存档。
如果存档的创建变得有点复杂并且涉及使用find
和/或tar
多个选项,那么创建一个在本地执行此操作的脚本,使用 将其上传到服务器上scp
,然后使用远程执行是非常实用的ssh
。