Section: User Commands (1)
Updated: NcFTP Software
ncftpget - Internet file transfer program for scripts
remote-host local-directory remote-files...
bookmark-name local-directory remote-files...
remote-host remote-file local-path-name
Command line flags:
- -u XX
instead of anonymous.
- -p XX
with the username.
- -P XX
Use port number
instead of the default FTP service port (21).
- -j XX
in supplement to the username and password (deprecated).
- -d XX
Use the file
for debug logging.
Use ASCII transfer type instead of binary.
- -t XX
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
for host, user, and password information.
Read from remote host and write locally to standard out.
Read from remote host and write locally to specified pathname.
Append to local files, instead of overwriting them.
Do (do not) try to resume transfers.
The default is to try to resume (-z).
Use regular (PORT) data connections.
Use passive (PASV) data connections.
The default is to use passive, but to fallback to
regular if the passive connection fails or times out.
Delete remote file after successfully downloading it.
Recursive mode; copy whole directory trees.
Do not use automatic on-the-fly TAR mode for downloading whole directory trees.
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 portion 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
times until connected to the remote FTP server.
Run in background (by submitting a batch job and then spawning
option, but only submits the batch job.
You will need to run
for the batch job to be processed.
This is useful if you already have a
process running, or wish to have better control of when batch
jobs are processed.
if you wanted to do background processing of three
files all on the same remote server, it is more polite
to use just one
process to process the three jobs sequentially, rather than
processes open three simultaneous FTP sessions to the same
- -B XX
Try setting the TCP/IP socket buffer size to
- -W XX
Send raw FTP command
after logging in.
- -X XX
Send raw FTP command
after each file transferred.
- -Y XX
Send raw FTP command
before logging out.
-W, -X, and -Y
options are useful for advanced users who need to tweak
behavior on some servers.
For example, users accessing mainframes might need to send
some special SITE commands to set blocksize and record format information.
For these options, you can use them multiple times each if you need
to send multiple commands.
option, you can use the cookie
to expand into the name of the file that was transferred.
- -o XX
Set advanced option
This option is used primarily for debugging.
It sets the value of an internal variable to an integer value.
An example usage would be:
which in this case, disables use of the
FEAT command and enables the CLNT command.
The available variables include:
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 useful for advanced users who
want to retrieve files from the shell command line without
entering an interactive FTP program such as
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
You can then copy and paste from your web browser
or newsreader and use that URL.
$ 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 anonymously, but you can specify a username
and password information.
option is used to specify the username to login as,
option is used to specify the password.
If you are running the program from the shell, you may
option and the program will prompt you for the password.
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
program could see your password while the program runs.
You may use the
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
Nevertheless, if you choose to use the
option the file should look something like this:
Don't forget to change the permissions on this file
so no one else can read them.
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
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
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 text format.
You can retrieve an entire directory tree of files by
However, this will work only if the remote FTP server
is a UNIX server, or emulates UNIX's list output.
$ ncftpget -R ftp.ncftp.com /tmp /pub/ncftp
This would create a /tmp/ncftp hierarchy.
returns the following exit values:
Could not connect to remote host.
Could not connect to remote host - timed out.
Transfer failed - timed out.
Directory change failed.
Directory change failed - timed out.
Error in login configuration file.
Library initialization failed.
Session initialization failed.
Mike Gleason, NcFTP Software (http://www.ncftp.com).