2009-05-02 6 views
23

Come posso eseguirlo sulla riga di comando di Linux quando il mio nome utente ha un segno @ nel mezzo?Come utilizzare ftp da linea di comando linux con un segno @ nel mio nome utente?

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

mio username è [email protected] e pensa che il mio ospite è domain.com.

NOTA: questo è un caricamento non presidiato, quindi non posso semplicemente digitare il nome utente e la password.

+0

Sto provando entrambi. Grazie ragazzi!! – bentford

+0

Sembra che appartenga a http://superuser.com. –

risposta

22

In alternativa, se non si desidera creare i file di configurazione, fare l'upload incustodita con curl invece di ftp:

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

-1 non perché è sbagliato, ma non lo aiuta con il suo problema - offre solo un'alternativa. Se non è impossibile fare ciò che vuole con ciò che vuole, perché dovrebbe cambiare lo strumento? –

12

cercare di definire l'account in un file ~/.netrc come questo:

machine host login [email protected] password mypassword 

Verificare man netrc per i dettagli.

+0

Entrambe le risposte sono giuste, ma l'ho dato a pts perché era più facile. Grazie per la risposta! – bentford

25

Prova questo: usare "% 40" al posto della "@ "

+1

Purtroppo non funziona per me :(L'host tratta% 40 come caratteri singoli, non @ –

-3

Non ho mai visto il parametro -u. Ma se vuoi usare un "@", che ne dici di dichiararlo come "\ @"?

In questo modo deve essere interpretato come desiderato. Sai qualcosa di simile

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

Non può usare \ @. La shell interpreterà \ @ come un semplice @ e lo elaborerà prima che il comando ftp lo veda mai. Devi usare% 40 (hex/ascii per @) che la shell ignorerà e il comando ftp interpreterà come @. –

+0

Se non hai mai visto un parametro -u (e ovviamente non l'hai mai testato) perché suggerisci di usarlo ? – Kornel

5

ho semplicemente digitare ftp hostdomain.com e la stessa il prossimo prompt mi ​​ha chiesto di inserire un nome, se non era lo stesso del mio attuale utente.

Suppongo che dipenda da come è configurato il tuo FTP. Cioè, se assume lo stesso nome utente (se non fornito) o chiede. la buona notizia è che anche senza una soluzione, la prossima volta che affronti questo potrebbe Just Work ™ per te: D

+0

questo funziona! –

+0

Questo è quello. – mark

1

Una risposta più completa sarebbe che non è possibile con ftp (almeno il programma ftp installato su centos 6)).

Dal momento che si desidera un processo non presidiato, la risposta di "pts" funzionerà correttamente.

fare l'upload incustodita con l'arricciatura invece di ftp:

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

% 40 non sembra funzionare.

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

Tutto quello che ho è quello di aprire il programma ftp e utilizzare il dominio e inserire l'utente quando richiesto. Di solito, è richiesta comunque una password, quindi la natura interattiva probabilmente non è problematica.

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