Well gFTP is a very handy ftp client with gtk front end, as I use it daily to maintain my files in my web servers. But sometimes we need a command that allows us to put into script, then gFTP is not suitable for that. And default ftp command surprise me that we cannot do things inline. Let say, I wanna download a file from a ftp server by passing the username and password within one line of command, so I can put into my script. I can’t do this with default ftp command!
Curl provides you a way to access ftp server and download, upload files, listing directories and file, and you can write your routine into a script using curl.
Lets look at how we can do it with curl.
The simplest way to access a ftp server with username and password
curl ftp://myftpsite.com --user myname:mypassword
With the command line above, curl will try to connect to the ftp server and list all the directories and files in the ftp home directory.
To download a file from ftp server
curl ftp://myftpsite.com/mp3/mozart_piano_sonata.zip --user myname:mypassword -o mozart_piano_sonata.zip
To upload a file to ftp server
curl -T koc_dance.mp3 ftp://myftpsite.com/mp3/ --user myname:mypassword
To list files in sub directories.
curl ftp://myftpsite.com/mp3/ --user myname:mypassword
List only directories, silent the curl progress bar, and use grep to filter
curl ftp://myftpsite.com --user myname:mypassword -s | grep ^d
Remove files from ftp server.
This is a bit tricky, because curl do not support that by default, well anyway, you can make use of -X and pass in the REAL FTP command.
(Check out a list of FTP service Command in rfc 959, under 4.1.3. FTP SERVICE COMMANDS)
curl ftp://myftpsite.com/ -X 'DELE mp3/koc_dance.mp3' --user myname:mypassword
Caution: Make sure you are know what are you deleting! It will not prompts ‘Are you sure?’ confirmation.
Check out curl manual for more,
or this, ^^ (contains different info)
curl --manual | less