Как использовать ftp командной строки Linux со знаком @ в моем имени пользователя?

Как я могу запустить это в командной строке Linux, когда мое имя пользователя имеет знак @ посередине?

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

Мое имя пользователя [email protected], и он думает, что мой хост domain.com.

ПРИМЕЧАНИЕ. Это автоматическая загрузка, поэтому я не могу просто ввести имя пользователя и пароль.


person bentford    schedule 02.05.2009    source источник
comment
Я пробую оба. Спасибо ребята!!   -  person bentford    schedule 02.05.2009
comment
Похоже, он принадлежит superuser.com.   -  person Justin Morgan    schedule 03.02.2011


Ответы (7)


В качестве альтернативы, если вы не хотите создавать файлы конфигурации, выполните автоматическую загрузку с помощью curl вместо ftp:

curl -u user:password -T file ftp://server/dir/file
person pts    schedule 02.05.2009
comment
-1 не потому что это неправильно, а это не помогает ему с его проблемой — просто дает альтернативу. Если невозможно делать то, что он хочет, с тем, что он хочет, зачем ему менять инструмент? - person Oliver Friedrich; 11.01.2010

Попробуйте это: используйте "%40" вместо "@"

person Angus S-F    schedule 03.02.2011
comment
К сожалению, у меня не работает :( Хост рассматривает %40 как отдельные символы, а не @ - person Asfand Qazi; 02.10.2013

Попробуйте определить учетную запись в файле ~/.netrc следующим образом:

machine host login [email protected] password mypassword

Подробнее см. man netrc.

person moinudin    schedule 02.05.2009
comment
Оба ответа правильные, но я дал его оч, потому что его было проще. Спасибо за ответ! - person bentford; 02.05.2009

Я просто набираю ftp hostdomain.com, и в следующем же приглашении меня просят ввести имя, если оно не совпадает с моим текущим пользователем.

Я думаю, это зависит от того, как настроен ваш FTP. То есть, предполагает ли он то же имя пользователя (если не указано) или спрашивает. хорошая новость заключается в том, что даже без решения в следующий раз, когда вы столкнетесь с этим, оно может просто работать для вас :D

person innovati    schedule 15.03.2012

Более полным ответом было бы то, что это невозможно с 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.
person Stephen    schedule 06.08.2012

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

person Dennis Comeaux    schedule 21.07.2011

Я никогда не видел параметр -u. Но если вы хотите использовать «@», как насчет того, чтобы указать его как «\@»?

Таким образом, это должно интерпретироваться так, как вы намереваетесь. Вы знаете что-то вроде

ftp -u user\@[email protected]
person Sal    schedule 06.02.2011
comment
Не могу использовать \@. Оболочка интерпретирует \@ как обычный @ и обрабатывает его до того, как его увидит команда ftp. Вы должны использовать %40 (hex/ascii для @), который оболочка будет игнорировать, а команда ftp интерпретирует как @. - person Wes Miller; 16.04.2012
comment
Если вы никогда не видели параметр -u (и, очевидно, никогда его не тестировали), почему вы предлагаете его использовать? - person Kornel; 10.01.2016