我试图通过ftp使用命令行FTP客户端的文件夹,但到目前为止,我只能够使用“获取”,以获得单个文件。
Answer 1:
你可以依靠的wget通常处理FTP(在我自己的经验至少)得到正常。 例如:
wget -r ftp://user:pass@server.com/
您还可以使用-m
适于镜像。 这是目前等同于-r -N -l inf
。
如果您在凭证细节已经一些特殊的字符,你可以指定--user
和--password
参数得到它的工作。 实施例用特定的字符定制登录:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
编辑正如指出的@asmaier,注意,即使-r
是递归的,它有5一个默认的最高级别:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
如果你不想错过子目录,最好使用镜像选项, -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
Answer 2:
只是,以补充蒂博BARRERE给出了答案。
我用了
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
注意服务器名称后的双斜线。 如果我不把额外的斜线的路径是相对于用户的主目录。
- -nH避免了服务器名称命名的目录的创建
- -nc避免创建一个新的文件,如果目标上已存在的(它只是跳过)
- --Cut-迪尔斯= 5让我拿/绝对/路径/到/目录,并把它在我的wget启动目录的内容。 数字5被用于过滤出的路径的5个组分。 双斜线意味着额外的组件。
Answer 3:
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Answer 4:
如果lftp
安装在你的机器上,使用mirror dir
。 和你做。 下面,如果你想递归下载目录中看到由西罗评论。
Answer 5:
如果您可以使用scp
来代替ftp
时, -r
选项会为你做到这一点。 我会检查,看看是否可以使用比FTP更现代的文件传输机制。
Answer 6:
使用wget来代替。 它支持HTTP和FTP协议。
wget -r ftp://mydomain.com/mystuff
祝好运!
参考: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Answer 7:
有“的ncftp”,这是可以在Linux中安装。 该工程对FTP协议,可用于递归下载文件和文件夹。 在Linux上工作。 已经使用并递归文件夹/文件传输工作的罚款。
检查此链接... http://www.ncftp.com/
Answer 8:
如果可以的话,我强烈建议你tar
和bzip
(或gzip
,不管你的船浮筒)遥控器上的目录机器的任何显著大小的目录,节省带宽可能会是值得压缩/解压缩的时间。
Answer 9:
如果你想坚持到FTP命令行,你应该尝试的NcFTP。 然后你就可以使用get -R递归得到一个文件夹。 您也将获得完成。
Answer 10:
wget -r ftp://url
完美的工作,为红帽和Ubuntu
Answer 11:
你不应该使用ftp
。 像telnet
它不使用安全协议和密码以明文形式传输。 这使得它很容易为第三方捕捉到你的用户名和密码。
要远程复制远程目录,这些选项更好:
rsync
是最适合的工具,如果你可以通过登录ssh
,因为它只复制的差异,并且可以在中间的情况下,连接容易破碎重启。ssh -r
是递归复制目录结构中的次优选择。
看到:
rsync的手册页
SSH手册页
Answer 12:
切换由PROMPT命令提示。
用法:
ftp>cd /to/directory
ftp>prompt
ftp>mget *