Ответ 1
В качестве альтернативы, если вы не хотите создавать файлы конфигурации, выполните автоматическую загрузку с curl
вместо ftp
:
curl -u user:password -T file ftp://server/dir/file
Как я могу запустить это в командной строке linux, когда мое имя пользователя имеет знак @
в середине?
ftp -u user:[email protected]/destination_folder/ sourcefile.txt
Мое имя пользователя [email protected]
, и он считает мой хост domain.com
.
ПРИМЕЧАНИЕ. Это автоматическая загрузка, поэтому я не могу просто ввести имя пользователя и пароль.
В качестве альтернативы, если вы не хотите создавать файлы конфигурации, выполните автоматическую загрузку с curl
вместо ftp
:
curl -u user:password -T file ftp://server/dir/file
Попробуйте следующее: используйте "% 40" вместо "@"
Попробуйте определить учетную запись в файле ~/.netrc
следующим образом:
machine host login [email protected] password mypassword
Подробнее о man netrc
.
Я просто набираю ftp hostdomain.com
, и самое следующее приглашение попросило меня ввести имя, если оно не совпадает с моим текущим пользователем.
Я думаю, это зависит от того, как настроен ваш FTP. То есть, принимает ли он одно и то же имя пользователя (если не указано) или спрашивает. хорошая новость заключается в том, что даже без решения, в следующий раз, когда вы столкнетесь с этим, это может просто работать ™ для вас: D
curl -f -s -disable-epsv -u [email protected]: gr8p455w0rd -T/some/dir/filename ftp://somewher.com/ByramHealthcareCenters/byram06-2011.csv
Более полный ответ был бы невозможным с ftp (по крайней мере, программа ftp, установленная на centos 6).
Поскольку вам нужен процесс без участия, ответ "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.
Я никогда не видел параметр -u
. Но если вы хотите использовать "@", как насчет того, чтобы указать его как "\ @"?
Таким образом, это должно интерпретироваться так, как вы намереваетесь. Вы знаете что-то вроде
ftp -u user\@[email protected]