我试图使用命令行ftp客户端ftp文件夹,但到目前为止,我只能使用“get”来获取单个文件。
当前回答
你不应该使用ftp。像telnet一样,它不使用安全协议,密码以明文传输。这使得第三方很容易获取您的用户名和密码。
要远程复制远端目录,这些选项更好:
如果可以通过ssh登录,Rsync是最合适的工具,因为它只复制差异,并且在连接中断时可以很容易地在中间重新启动。 SSH -r是递归复制目录结构的次优选择。
要递归地获取文件,你可以使用这样的脚本: https://gist.github.com/flibbertigibbet/8165881
See:
Rsync手册 SSH手册
其他回答
如果可以的话,我强烈建议您在远程机器上对目录进行tar和bzip(或gzip,随便什么都行)—对于任何大小的目录,节省的带宽可能都是值得花时间进行压缩/解压缩的。
在linux中可以安装“ncftp”。它在FTP协议上工作,可用于递归地下载文件和文件夹。适用于linux。用于递归文件夹/文件传输,并且运行良好。
检查这个链接…http://www.ncftp.com/
你不应该使用ftp。像telnet一样,它不使用安全协议,密码以明文传输。这使得第三方很容易获取您的用户名和密码。
要远程复制远端目录,这些选项更好:
如果可以通过ssh登录,Rsync是最合适的工具,因为它只复制差异,并且在连接中断时可以很容易地在中间重新启动。 SSH -r是递归复制目录结构的次优选择。
要递归地获取文件,你可以使用这样的脚本: https://gist.github.com/flibbertigibbet/8165881
See:
Rsync手册 SSH手册
只是为了补充Thibaut给出的答案Barrère。
我使用
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
注意服务器名称后面的双斜杠。如果你不放一个额外的斜杠,路径是相对于用户的主目录。
-nH避免创建以服务器名称命名的目录 -nc避免在目标文件已经存在的情况下创建新文件(它只是被跳过) ——cut-dirs=5允许获取/absolute/path/to/directory的内容,并将其放在启动wget的目录中。数字5用于过滤掉路径的5个组成部分。双斜杠表示一个额外的组件。
通过prompt命令切换提示符。
用法:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
推荐文章
- 如何重定向标准derr和标准输出到不同的文件在同一行脚本?
- Windows和Linux上的c++编译:ifdef开关
- Linux: kill后台任务
- 如何循环通过文件匹配通配符在批处理文件
- 如何修改Linux系统中打开文件的数量限制?
- errno线程安全吗?
- 我怎么能显示线在公共(反向差异)?
- 如何在Linux中永久导出变量?
- Git显示“警告:永久添加到已知主机列表”
- 如何首次配置postgresql ?
- 检索Linux上单个进程的CPU使用情况和内存使用情况?
- 如何从远程SSH会话发送数据到本地剪贴板
- SSH端口转发~/。ssh /配置文件?
- 在Linux中安装Java SDK后,我可以在哪里找到它?
- 如何将多个文件的内容追加到一个文件