UNIX基本ftp上传

时间:2013-05-27 12:22:00

标签: unix terminal

我正在尝试让终端为我上传文件,在这种情况下:file.txt 不幸的是,无论我尝试什么,它都行不通。

#!/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和sudo .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,所以请原谅我这个(可能)愚蠢的问题。

4 个答案:

答案 0 :(得分:1)

您正在使用get,但请谈谈上传。您可能只想使用put

无论如何,我不确定是否可以使用基本的ftp客户端来完成。我总是使用ncftp来做这样的事情。这带有命令行实用程序,如ncftpput,它接受​​命令行参数和执行任务的选项。

答案 1 :(得分:1)

Alfe是对的,您需要使用put <filename>将文件上传到FTP。您可以找到快速指南here。应该可以使用基本的FTP工具,但我也建议使用ncftp: - )

答案 2 :(得分:1)

您需要使用put上传文件。

答案 3 :(得分: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  

因此,请使用put并确保您的文件是当前工作目录,并且远程目录存在。