0

以下命令对我来说非常适合单个文件:

scp your_username@remotehost.edu:foobar.txt /some/local/directory

我想要做的是递归(即对于服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后只下载服务器上小于某个值的文件(例如 10 mb)。

我怎么能那样做?

4

2 回答 2

1

使用 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

于 2013-08-02T09:15:38.353 回答
0

第一个选项:使用rsync.

第二种选择,它不会是一条线,但可以用三到四行来完成:

使用 . 在远程系统上创建一个 tar 归档文件ssh。使用 . 从远程系统复制 tar scp。在本地解压缩存档。

如果存档的创建变得有点复杂并且涉及使用find和/或tar多个选项,那么创建一个在本地执行此操作的脚本,使用 将其上传到服务器上scp,然后使用远程执行是非常实用的ssh

于 2013-08-02T09:09:50.123 回答