我正在尝试让终端为我上传文件,在这种情况下: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,所以请原谅我这个(可能)愚蠢的问题。
答案 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并确保您的文件是当前工作目录,并且远程目录存在。