以下命令对我来说对单个文件非常有用:
scp your_username@remotehost.edu:foobar.txt /some/local/directory
我想做的是递归(即服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已存在的文件,最后只降低服务器上小于a的文件某个值(例如10 mb)。
我怎么能这样做?
答案 0 :(得分: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
答案 1 :(得分:0)
第一个选项:使用rsync
。
第二个选项,它不会是一个单行,但可以用三到四行完成:
使用ssh
在远程系统上创建tar存档。
使用scp
从远程系统复制tar。
在本地解压缩档案。
如果存档的创建有点复杂并且涉及使用find
和/或tar
使用多个选项,那么创建一个可以在本地执行该操作的脚本非常实用,将其上载到服务器scp
,然后使用ssh
远程执行。