I need to upload a single file to the ftp server from ubuntu This operation should be performed in a script in non-interactive mode What is the right syntax for ftp ?

I've tried to do it but it doesn't work

$ ftp -u ftp://user:secret@ftp.example.com my-local-file.txt
ftp: Invalid URL `ftp://'
Best Answer


Here's an approach

$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF

Alternatively, create (or edit) the ~/.netrc file in the home dir of the user that will run the ftp command, give it appropriate perms ( chmod 0600 ~/.netrc ), and add the following:

# ~/.netrc
machine ftp.example.com
login user
password secret

Then omit the login information

$ echo put my-local-file.txt | ftp ftp.example.com

Also, here's how you might do the same thing using curl.

$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret