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

问题描述 投票:0回答:7

当我的用户名中间有一个

@
符号时,如何在 linux 命令行上运行它?

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

我的用户名是

[email protected]
,它认为我的主人是
domain.com
.

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

linux ftp
7个回答
25
投票

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


22
投票

作为替代方案,如果您不想创建配置文件(或者您不想依赖系统特定 ftp 命令的行为),请使用

curl
而不是
ftp 进行无人值守上传
:

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

如果您出于安全原因不想

ps
(进程列表)显示传递给curl的密码,请参阅这个问题的答案


12
投票

尝试在

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

machine host login [email protected] password mypassword

查看

man netrc
了解详情。


6
投票

我只需输入

ftp hostdomain.com
,如果它与我当前的用户不同,下一个提示会要求我输入一个名字。

我想这取决于您的 FTP 是如何配置的。也就是说,它是否采用相同的用户名(如果未提供)或询问。好消息是,即使没有解决方案,下次您遇到这个问题时,它也可能对您有用 :D


2
投票

更完整的答案是 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%[email protected]
ftp: some_user%[email protected]: 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): [email protected]
331 User [email protected] OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.

1
投票

curl -f -s --disable-epsv -u [email protected]:gr8p455w0rd -T /some/dir/filename ftp://somewher.com/ByramHealthcareCenters/byram06-2011.csv


-3
投票

我从来没有见过

-u
参数。但是,如果您想使用“@”,将其声明为“\@”怎么样?

这样它应该被解释为你想要的。你知道类似的东西

ftp -u user\@[email protected]
© www.soinside.com 2019 - 2024. All rights reserved.