ncftpget(1)ncftpget(1)NAMEncftpget - Internet file transfer program for scripts
SYNOPSISncftpget [options] remote-host local-directory remote-files...
ncftpget-f login.cfg [options] local-directory remote-files...
ncftpget [options] ftp://url.style/host/path/name
Command line flags:
-u XX Use username XX instead of anonymous.
-p XX Use password XX with the username.
-P XX Use port number XX instead of the default FTP service port
-j XX Use account XX in supplement to the username and password (dep‐
-d XX Use the file XX for debug logging.
-a Use ASCII transfer type instead of binary.
-t XX Timeout after XX seconds.
-v/-V Do (do not) use progress meters. The default is to use
progress meters if the output stream is a TTY.
-f XX Read the file XX for host, user, and password information.
-A Append to local files, instead of overwriting them.
-z/-Z Do (do not) try to resume transfers. The default is to try to
-E Use regular (PORT) data connections.
-F Use passive (PASV) data connections. The default is to use
passive, but to fallback to regular if the passive connection
fails or times out.
-DD Delete remote file after successfully downloading it.
-R Recursive mode; copy whole directory trees.
-T Do not use automatic on-the-fly TAR mode for downloading whole
directory trees. ncftpget uses TAR whenever possible since
this usually preserves symbolic links and file permissions.
TAR mode can also result in faster transfers for directories
containing many small files, since a single data connection can
be used rather than an FTP data connection for each small file.
The downside to using TAR is that it forces downloading of the
whole directory, even if you had previously downloaded a por‐
tion of it earlier, so you may want to use this option if you
want to resume downloading of a directory.
-r XX Redial a maximum of XX times until connected to the remote FTP
-b Run in background (by submitting a job to ncftpbatch).
-B XX Try setting the TCP/IP socket buffer size to XX bytes.
The purpose of ncftpget is to do file transfers from the command-line
without entering an interactive shell. This lets you write shell
scripts or other unattended processes that can do FTP. It is also use‐
ful for advanced users who want to retrieve files from the shell com‐
mand line without entering an interactive FTP program such as ncftp.
One particularly useful feature of this program is that you can give it
a uniform resource locator as the only argument and the program will
download that file. You can then copy and paste from your web browser
or newsreader and use that URL. Example:
$ cd /tmp
$ ncftpget ftp://ftp.ncftp.com/pub/ncftp/ncftp.tar.Z
$ zcat ncftp.tar.Z | tar xf -
By default the program tries to open the remote host and login anony‐
mously, but you can specify a username and password information. The
-u option is used to specify the username to login as, and the -p
option is used to specify the password. If you are running the program
from the shell, you may omit the -p option and the program will prompt
you for the password.
Using the -u and -p options are not recommended, because your account
information is exposed to anyone who can see your shell script or your
process information. For example, someone using the ps program could
see your password while the program runs.
You may use the -f option instead to specify a file with the account
information. However, this is still not secure because anyone who has
read access to the information file can see the account information.
Nevertheless, if you choose to use the -f option the file should look
something like this:
Don't forget to change the permissions on this file so no one else can
The -d option is very useful when you are trying to diagnose why a file
transfer is failing. It prints out the entire FTP conversation to the
file you specify, so you can get an idea of what went wrong. If you
specify the special name stdout as the name of the debugging output
file, the output will instead print to the screen. Example:
$ ncftpget-d stdout bowser.nintendo.co.jp . /pub/README
220: FTP server ready.
Connected to bowser.nintendo.co.jp.
Cmd: USER anonymous
331: Guest login ok, send your complete e-mail address as password.
Cmd: PASS xxxxxxxx
Logged in to bowser.nintendo.co.jp as anonymous.
Cmd: TYPE I
200: Type set to I.
Cmd: PORT 192,168,9,37,6,76
200: PORT command successful.
Cmd: RETR /pub/README
550: /pub/README: File in use.
Using ASCII mode is helpful when the text format of your host differs
from that of the remote host. For example, if you are retrieving a
.TXT file from a Windows-based host to a UNIX system, you could use the
-a flag which would use ASCII transfer mode so that the file created on
the UNIX system would be in the UNIX text format instead of the MS-DOS
You can retrieve an entire directory tree of files by using the -R
flag. However, this will work only if the remote FTP server is a UNIX
server, or emulates UNIX's list output. Example:
$ ncftpget-R ftp.ncftp.com /tmp /pub/ncftp
This would create a /tmp/ncftp hierarchy.
DIAGNOSTICSncftpget returns the following exit values:
1 Could not connect to remote host.
2 Could not connect to remote host - timed out.
3 Transfer failed.
4 Transfer failed - timed out.
5 Directory change failed.
6 Directory change failed - timed out.
7 Malformed URL.
8 Usage error.
9 Error in login configuration file.
10 Library initialization failed.
11 Session initialization failed.
Mike Gleason, NcFTP Software (email@example.com).
SEE ALSOncftpput(1), ncftp(1), ftp(1), rcp(1), tftp(1).
Software NcFTP ncftpget(1)