get [directory]
,则会出现此错误:
Cannot download non-regular file: /home/mpirocch/Documents
get -R
不起作用,或者。#1 楼
使用-r
(递归)标志:get -r *
评论
感谢您提出一个可以真正回答问题的答案。
– aVeRTRAC
2012年1月19日19:56
给我:get:无效标志-r
–ghbarratt
2012年7月18日在21:21
这也给了我无效的标志。我不确定所有系统都支持此功能。
–本
2012年8月28日在7:35
@silvinci并非当前所有系统。 CentOS 6.4中的非法选项openssh-clients-5.3p1-84.1.el6.x86_64
– CrackerJack9
13年5月5日在1:25
由于某些原因,递归上载不能与put -r *一起使用,它无法创建目录。但是对我来说,下面的lftp解决方案很好用。
–中国
2014年12月22日上午8:24
#2 楼
用途:scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
评论
这可以工作,但是能够通过SFTP做到这一点非常好(这样我可以在复制之前看到复制的内容)。这可能吗?
–马修
09年9月12日在22:53
@马修:我不这么认为。一段时间以来,我一直在问自己同样的问题,而目前最好的答案是scp -r。或者,您可以使用Filezilla之类的高级SFTP客户端。
–克里斯蒂安·丘皮图
09年9月12日在23:53
scp -r将遵循符号链接...
–jsleuth
13年2月13日在15:57
某些系统可能允许sftp,但不允许scp访问。
–转向
17年8月4日在9:41
这不能回答问题。
–埃里克·杜米尼尔(Eric Duminil)
19年10月10日在14:20
#3 楼
使用lftp
:lftp sftp://user@host
,然后在lftp中,将
cd
插入要复制的目录,并使用
mirror
命令递归下载所选目录,像这样的:
mirror
此命令接受选项和参数:
mirror [OPTIONS] [source [target]]
例如,则
-R
(或--reverse
)选项将使它将本地目录树上载到远程目录:
mirror -R
请参阅以下网址的
lftp(1)
手册页:项目的站点或Debian.org上的其他命令和选项。
评论
+1 lftp就像是一堆魔术和欢乐!
–WCWedin
2011-4-27 13:32
#4 楼
这个小指南应该会有所帮助,将远程服务器镜像到具有lftp的本地文件夹lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://
=使用SFTP协议mirror
=镜像模式verbose
=显示正在下载的文件use-pget-n
=分段数量,对于加速大文件很有用parallel
=同时下载乘数文件如果要并行下载文件,请使用
use-pget-n=8
切换--parallel=8
希望这可以帮助需要镜像远程文件夹的任何人到本地文件夹
评论
谢谢,这对我有用,在其他方法失败之后(特别是sftp上没有“ -r”选项)。由于密码lftp'sftp:// user:pa$$word@server.org:22'-e'mirror --verbose --use中的美元字符,本例中命令的第一部分需要加引号-pget-n = 8 -c /远程/路径/本地/路径'
–詹森
2014年11月9日22:57
太好了,谢谢。我想从本地复制到服务器,所以我使用了镜像-R ...
–埃里克·杜米尼尔(Eric Duminil)
19/12/10在14:29
#5 楼
如果可以找到更好的东西,请不要直接使用sftp程序。对于Linux,许多文件管理器(至少是Nautilus和Dolphin,GNOME和KDE的文件管理器)本身都支持sftp,并且总是有sshfs。对于Windows,有WinSCP,可能还有其他。所有这些的目的是让您像使用常规文件系统一样通过sftp访问文件,因此您不必担心通过sftp访问它们。评论
哇,鹦鹉螺与SFTP搭配使用效果很好。我在Nautilus中添加了一个书签,现在这一切都非常简单。谢谢!
–马修
09-09-13 14:13
我在Nautilus SFTP上遇到性能问题。是的,这确实很方便,但是我无法通过Nautilus饱和1 Gbit / s的网络,而使用普通的sftp / ssh命令行界面则是(cca 100 MB / s的文件传输)。因此,问题出在GNU / Linux Mint上的Nautilus。
– stamster
18年1月25日在22:15
#6 楼
请尝试使用mget
代替get
。说明:如果您要复制的目录位于内部,则
mget
可以工作;如果您执行以下操作:sftp> cd dir_to_get
sftp> mget *
,它将获取该目录中的所有文件。但是,它不会递归获取任何子目录的内容。
评论
mget的工作比为我服务更好。
–马修
09年9月12日在22:53
无法与此一起下载非常规文件
– Dchris
15年8月24日在9:04
这对我在'get -r'无效的系统上起作用。
– Tchotchke
16-09-20在19:47
#7 楼
get -r [directory]
得到
[directory]
及其下的所有内容,其中r
表示递归。我只是通过从help
键入sftp
来发现的。评论
海事组织,这是对这个问题的最佳答案。 :)
– ramrunner
13年1月24日在18:28
这是10年11月29日(将近一年半之前)的答案的重复。
–克里斯蒂安·丘皮图
2014年1月4日19:43
#8 楼
与cp
一样:scp -rp user@host:/path/to/dir dir
以上内容将保留原始文件和子目录的时间和方式。这对于检索备份特别有用。
评论
这基本上是10年11月29日(差不多两年前)的答案的重复。
–克里斯蒂安·丘皮图
2014年1月4日19:47
如果仅允许sftp,则这尤其无用。
–埃里克·杜米尼尔(Eric Duminil)
19/12/10下午14:19
#9 楼
我在远程服务器上有Java dist文件夹,其中有以下树:- dist
--- Audio.jar
--- README
--- lib
----- lib.jar
目标是:我要使用SFTP?并将它们放在/ tmp / <>
步骤1。sftp remoteuser @ ip
步骤2。cd / var / tmp
步骤2 lmkdir / tmp / dist; lmkdir / tmp / dist / lib
步骤3。lcd/ tmp / dist
步骤4. mget *
步骤5。lcd/ tmp / dist / lib
步骤6. mget *
步骤7.终于我有了我的目标
$ ls
Audio.jar lib README.TXT
评论
递归放置/获取功能已在2010年发布的5.4中添加到OpenSSH中。您可以考虑升级服务器,因为它还添加了许多错误修复和更好的安全性功能。哇,sftp基本上是没有用的。 lftp很有帮助。