sftp命令获取/下载.tar.gz文件


16

我以为我熟悉sftpUnix中的命令,据我所知,用于compressed从服务器下载文件的命令是

sftp获取filename.tar.gz

但是,当我尝试使用此命令时,文件将被清空,这意味着文件大小将变为0,但我不知道为什么会发生这种情况。是否有其他专门针对.tar.gz文件类型的命令。获取此压缩文件的过程是什么。我正在使用mac终端。


2
您是否不必包含服务器地址?您键入的确切命令是什么?
Faheem Mitha 2014年

@FaheemMitha我已经使用sftp命令进入服务器。sftp用户[at]服务器以及我使用的sftp终端> get filename.tar.gz
GIRI 2014年

Answers:


23

get 是合法的sftp命令,但不能以这种方式使用。

要下载filename.tar.gz到Mac 的正确语法是:

sftp user@host:/path/to/filename.tar.gz /some/local/folder

(替换user为用于连接到远程服务器的用户,替换host为远程服务器名称。)

tar.gz上面的命令对文件没有什么特殊要求,它对任何扩展名都是通用的。

要使用它,get您必须首先进入交互模式:

  1. 与远程服务器建立连接:

    sftp user@host
    

    等到>sftp提示符出现在换行符中-您现在可以键入命令。

  2. 将远程路径更改为/path/to

    cd /path/to/
    
  3. 将本地路径更改为/some/local/folder

    lcd /some/local/folder
    
  4. 使用get下载的文件:

    get filename.tar.gz
    

不,它不起作用,我尝试了您的建议。尝试更改本地路径,但没有效果。
GIRI 2014年

您可以发布sftp命令的输出吗?
2014年

有没有这样的输出之类的话,类型sftp > get filename.tar.gz的文件不被下载和存储轮流为0
GIRI

无论是sftp > get filename.tar.gz也不是,如张贴在你的问题,sftp get filename.tar.gz将工作。正确的语法是sftp user@host:/path/to/filename.tar.gz /some/local/folder,如我的答案所述。当你键入命令(更换会发生什么userhost/path/to/some/local/folder与您的环境中正确的值),在终端,然后按Enter键?有没有输出?如果是这样,请将其添加到我们的问题中。
jaume 2014年

没有输出。它只是转到下一行。
GIRI 2014年

0

如果您已经登录到sftp会话,则使用另一种方法。

如果您得到:

sftp> get my-file.txt
get: failed to download /home/user/my-file.txt. Access is denied. 

您可以考虑是否在本地拥有写权限。要检查文件的下载位置,请执行以下操作:

sftp> lpwd
C:\Users\user1\Documents

通常,“文档”是不允许的。因此,将下载目录更改为C:\tmp

sftp> lcd C:\tmp
sftp> get my-file.txt
    Downloading my-file.txt from /home/user/my-file.txt
    1% 437123KB    620KB/s 00:00:41 ETA

完成

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.