2013-05-27 69 views
0

我試圖讓終端上傳一個文件給我,在這種情況下:file.txt 不幸的是,無論我嘗試什麼,它都無法工作。UNIX基本ftp上傳

#!/bin/bash 

HOST=* 
USER=*  
PASS=* 

# I'm 100% sure the host/user/pass are correct. 
#Terminal also connects with the host provided 

ftp -inv $HOST << EOF 
user $USER $PASS 

cd /Users/myname/Desktop 

get file.txt #which is located on my desktop 

bye 
EOF 

我試過100個不同的劇本,但它只是不會上傳:(

這是輸出保存到一個sh文件,使用chmod + x和須藤sh文件後:

Connected to *hostname*. 
220 ProFTPD 1.3.4b Server ready. 
331 Password required for *username* 
230 User *username* logged in 
Remote system type is UNIX. 
Using binary mode to transfer files. 
550 /Users/myname/Desktop: No such file or directory 
local: file.txt remote: file.txt 
229 Entering Extended Passive Mode (|||35098|) 
550 file.txt: No such file or directory 
221 Goodbye. 
myname:Desktop Myname$ 

我已經通過對這裏的同一個問題許多其他議題瀏覽,可我就是想不通,我已經開始從今天早上與UNIX玩,所以請原諒我這個(可能)愚蠢的問題。

+0

因爲要上傳文件,它不應該是'put file.txt'而不是'get file.txt'嗎? –

回答

1

嘗試:

#!/bin/bash 

HOST=* 
USER=*  
PASS=* 

# I'm 100% sure the host/user/pass are correct. 
#Terminal also connects with the host provided 

cd /Users/myname/Desktop # Go the the local folder where the file is located in 

ftp -inv $HOST << EOF 
user $USER $PASS 

cd /User/$USER/Desktop # Go to the folder in which you want to upload the file 

put file.txt #which is located on my desktop 

bye 
EOF 

因此,使用放,並確保您的文件是當前工作目錄和遠程目錄存在。

+0

確實。我重新閱讀腳本幾次...我知道我必須使用put,但是我只是沒有看到我使用put X_X謝謝! – Frank

1

您正在使用get,但請注意上傳。可能你只是想用put

無論如何,我不確定這可以使用基本的ftp客戶端來完成。我總是用ncftp這樣的東西。這與命令行實用程序,如ncftpput接受命令行參數和選項來執行任務。

+0

謝謝:)我解釋了這個奇怪的得到選擇在上面的答案:) – Frank

1

Alfe是對的,你需要使用put <filename>上傳文件到FTP。你可以找到一個快速指南here。它應該可以使用基本的FTP工具,但我也建議ncftp :-)

+0

謝謝:)我解釋了這個奇怪的選擇在上面的答案:) – Frank

1

您需要tu使用put來上傳文件。

+0

謝謝:)我解釋了這個奇怪的得到選擇在上面的答案: ) – Frank