如何在我的用户名中使用带有@符号的linux命令行ftp?

当我的用户名在中间有一个@符号时,我怎么能在linux命令行上运行这个?

 ftp -u user:password@host/destination_folder/ sourcefile.txt 

我的用户名是info@domain.com ,它认为我的主机是domain.com

注意:这是一个无人值守的上传,所以我不能只input用户名和密码。

Solutions Collecting From Web of "如何在我的用户名中使用带有@符号的linux命令行ftp?"

作为替代方案,如果您不想创建配置文件,请使用curl而不是ftp进行无人参与上传:

 curl -u user:password -T file ftp://server/dir/file 

试试这个:用“%40”代替“@”

尝试在~/.netrc文件中定义帐户,如下所示:

 machine host login info@domain.com password mypassword 

检查man netrc的细节。

我只需输入ftp hostdomain.com ,然后下一个提示要求输入一个名称,如果它不是我的当前用户。

我想这取决于你的FTP配置。 也就是说,它是否采用相同的用户名(如果没有提供)或询问。 好消息是,即使没有解决方案,下次你面对这可能会为你工作

curl -f -s –disable-epsv -u someone@somewhere.com:gr8p455w0rd -T / some / dir / filename ftp://somewher.com/ByramHealthcareCenters/byram06-2011.csv

一个更完整的答案是,这是不可能与FTP(至少是安装在Centos 6上的FTP程序)。

既然你想要一个没有人参与的过程,那么“pts”的答案就可以正常工作。

用curl而不是ftp来做无人看管的上传:

 curl -u user:password -T file ftp://server/dir/file 

%40似乎不起作用。

 [~]# ftp domain.com ftp: connect: Connection refused ftp> quit [~]# ftp some_user%40domain.com@domain.com ftp: some_user%40domain.com@domain.com: Name or service not known ftp> quit 

我所得到的只是打开ftp程序并使用域名,并在被问及时输入用户名。 通常情况下,密码是必需的,所以交互性可能没有问题。

 [~]# ftp domain.com Connected to domain.com (173.254.13.235). 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 2 of 1000 allowed. 220-Local time is now 02:47. server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. Name (domain.com:user): some_user@domain.com 331 User some_user@domain.com OK. Password required Password: 230 OK. Current restricted directory is / Remote system type is UNIX. Using binary mode to transfer files. 

我从来没有见过-u参数。 但是如果你想使用“@”,那么把它表示为“\ @”呢?

这样它应该被解释为你打算。 你知道的

 ftp -u user\@domain.tld@ftp.host.tld