【问题标题】:Escaping the "@" character on command line在命令行上转义“@”字符
【发布时间】:2015-03-02 12:34:55
【问题描述】:

我正在尝试获取一个简单的命令,以便在 bash/ubuntu 中为我上传文件。我正在使用wput 命令来执行此操作。我上传到的帐户中有@ 符号,我认为这就是我无法正确登录的原因。当我尝试登录时,我收到以下错误消息(IP 地址已更改):

正在连接到 1.1.1.1:21... 已连接!
以 user@domain.com 身份登录...错误:登录序列失败(登录身份验证失败)
正在跳过此帐户中的所有文件...

我要运行的命令是:

wput -u file.txt ftp://user\@domain.com:password@ftp.domain.com/txt/

我尝试使用 user@domain.com 和 user\@domain.com。有没有人尝试过这样的事情?

当我使用 GUI FTP 客户端和相同的凭据时,它可以工作。这就是我测试以确保用户和通行证实际工作的方式。

【问题讨论】:

    标签: bash ftp


    【解决方案1】:

    你可以尝试urlencode它:

    wput -u file.txt ftp://user%40domain.com:password@ftp.domain.com/txt/
    

    查看https://en.wikipedia.org/wiki/Percent-encoding

    【讨论】:

    • 遗憾的是,我最终遇到了同样的错误。我会尝试看看我是否错了'@'这个问题,但我知道我可以从同一台机器登录到另一个帐户,该帐户在用户名中没有'@'。感谢您的建议,我真的希望它能解决它。
    【解决方案2】:

    用用户名中的“+”替换@符号和/或“%40”ASCII码

    否 => ftp user@domain.com@ftp.domain.com
    否 => ftp user%40domain.com@ftp.domain.com
    是 => ftp user+domain.com@ftp.domain.com

    【讨论】:

      猜你喜欢
      • 2011-07-02
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 2016-06-23
      • 2013-03-04
      • 1970-01-01
      • 2019-12-08
      • 2011-02-20
      相关资源
      最近更新 更多