2009-05-02 8 views
23

¿Cómo puedo ejecutar esto en la línea de comandos de Linux cuando mi nombre de usuario tiene un signo @ en el medio?¿Cómo usar linux command line ftp con un signo @ en mi nombre de usuario?

ftp -u user:[email protected]/destination_folder/ sourcefile.txt 

mi nombre de usuario es [email protected] y se cree mi anfitrión es domain.com.

NOTA: Esta es una carga desatendida, por lo que no puedo simplemente escribir el nombre de usuario y la contraseña.

+0

Estoy tratando de ambos. ¡¡Gracias chicos!! – bentford

+0

Parece que pertenece a http://superuser.com. –

Respuesta

22

Como alternativa, si no desea crear archivos de configuración, hacer la carga sin vigilancia con curl en lugar de ftp:

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

-1 no porque sea incorrecto, pero no lo ayuda con su problema, solo da una alternativa. Si no es imposible hacer lo que quiere con lo que quiere, ¿por qué debería cambiar la herramienta? –

12

tratar de definir la cuenta en un archivo ~/.netrc así:

machine host login [email protected] password mypassword 

Comprobar man netrc para más detalles.

+0

Ambas respuestas son correctas, pero se las di a los pts porque era más fácil. ¡Gracias por la respuesta! – bentford

25

Prueba esto: use "% 40" en lugar de la "@ "

+1

Desafortunadamente, no funciona para mí :(El host trata% 40 como caracteres individuales, no como @ –

-3

Nunca he visto el parámetro -u. Pero si quiere usar una "@", ¿qué le parece decir "\ @"?

De esta manera, debe interpretarse como usted desea. Ya sabes algo así como

ftp -u user\@[email protected] 
+2

No se puede usar \ @. El intérprete interpretará el \ @ como un @ simple y lo procesará antes de que el comando ftp lo vea. Tienes que usar% 40 (hex/ascii para @) que el shell ignorará y el comando ftp lo interpretará como @. –

+0

Si nunca has visto el parámetro -u (y obviamente nunca lo has probado), ¿por qué sugieres usarlo? ? – Kornel

5

Simplemente escriba ftp hostdomain.com y la propia El siguiente mensaje me pidió que ingresara un nombre, si no era lo mismo que mi usuario actual.

Supongo que depende de cómo esté configurado su FTP. Es decir, si asume el mismo nombre de usuario (si no se proporciona) o pregunta. La buena noticia es que, incluso sin una solución, la próxima vez que se enfrente a esto podría ser Just Work ™ para usted: D

+0

esto funciona! –

+0

Este es el único. – mark

1

Una respuesta más completa sería que no es posible con ftp (al menos el programa ftp instalado en centos 6)

Como quería un proceso sin asistencia, la respuesta de "pts" funcionará bien.

hacer la carga sin vigilancia con el enrollamiento en lugar de ftp: no aparece

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

% 40 a trabajar.

[~]# 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 

Todo lo que tengo es abrir el programa ftp y usar el dominio e ingresar el usuario cuando se le solicite. Por lo general, se requiere una contraseña de todos modos, por lo que la naturaleza interactiva probablemente no sea problemática.

[~]# 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. 
Cuestiones relacionadas