0

我正在尝试让终端为我上传文件,在这种情况下: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

4 回答 4

1

您正在使用get但谈论上传。可能你只是想使用put

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

于 2013-05-27T12:25:53.873 回答
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 并确保你的文件是当前工作目录并且远程目录存在。

于 2013-05-27T12:32:10.053 回答
1

您需要用于put上传文件。

于 2013-05-27T12:29:40.703 回答
1

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

于 2013-05-27T12:27:58.043 回答