2009-05-02 16 views
23

Làm cách nào tôi có thể chạy điều này trên dòng lệnh linux khi tên người dùng của tôi có dấu hiệu @ ở giữa?Làm thế nào để sử dụng dòng lệnh ftp linux với một dấu @ trong tên người dùng của tôi?

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

tên của tôi là [email protected] và nó nghĩ rằng máy chủ của tôi là domain.com.

LƯU Ý: Đây là bản tải lên không được giám sát, vì vậy tôi không thể chỉ nhập tên người dùng và mật khẩu.

+0

Tôi đang thử cả hai. Cảm ơn các bạn!! – bentford

+0

Điều này có vẻ như nó thuộc về http://superuser.com. –

Trả lời

22

Là một thay thế, nếu bạn không muốn tạo tập tin cấu hình, làm việc tải lên không giám sát với curl thay vì ftp:

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

-1 không phải vì nó là sai, nhưng nó không giúp anh ta với vấn đề của mình - chỉ cần đưa ra một thay thế. Nếu nó không phải là không thể làm những gì anh ta muốn với những gì anh ta muốn, tại sao anh ta nên thay đổi công cụ? –

12

Cố gắng xác định tài khoản trong một tập tin ~/.netrc như thế này:

machine host login [email protected] password mypassword 

Kiểm tra man netrc để biết chi tiết.

+0

Cả hai câu trả lời là đúng, nhưng tôi đã cho nó để pts bởi vì ông đã được dễ dàng hơn. Cảm ơn câu trả lời! – bentford

25

Hãy thử điều này: sử dụng "% 40" ở vị trí của "@ "

+1

Không làm việc cho tôi không may: (Host xử lý% 40 là ký tự riêng lẻ, không phải @ –

-3

Tôi chưa bao giờ thấy tham số -u. Nhưng nếu bạn muốn sử dụng một "@", làm thế nào để nói nó là "\ @"?

Bằng cách đó, nó sẽ được hiểu như bạn dự định. Bạn biết điều gì đó như

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

Không thể sử dụng \ @. Shell sẽ diễn giải \ @ dưới dạng @ plain và xử lý nó trước lệnh ftp từng thấy. Bạn phải sử dụng% 40 (hex/ascii cho @) mà shell sẽ bỏ qua và lệnh ftp sẽ hiểu là @ –

+0

Nếu bạn chưa bao giờ thấy tham số -u (và rõ ràng là chưa bao giờ thử nghiệm nó) tại sao bạn đề nghị sử dụng nó ? – Kornel

5

Tôi chỉ cần gõ ftp hostdomain.com và rất lời nhắc tiếp theo yêu cầu tôi nhập tên, nếu nó không giống với tên người dùng hiện tại của tôi.

Tôi đoán nó phụ thuộc vào cách cấu hình FTP của bạn. Đó là, cho dù nó giả định cùng một tên người dùng (nếu không được cung cấp) hoặc yêu cầu. tin tốt là ngay cả khi không có giải pháp, ngay cả khi bạn đối mặt với điều này, có thể Just Work ™ cho bạn: D

+0

cái này hoạt động! –

+0

Đây là một cái. – mark

1

Câu trả lời hoàn chỉnh hơn là không thể với ftp (ít nhất là chương trình ftp được cài đặt trên centos 6).

Vì bạn muốn có quy trình không được tham dự, câu trả lời của "pts" sẽ hoạt động tốt.

Làm upload tự động với curl thay vì ftp:

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

% 40 không xuất hiện để làm việc.

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

Tất cả những gì tôi có là mở chương trình FTP và sử dụng miền và nhập người dùng khi được hỏi. Thông thường, mật khẩu là bắt buộc, vì vậy bản chất tương tác có thể không có vấn đề.

[~]# 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. 
Các vấn đề liên quan