ncftpls - Internet file transfer program for scripts
ncftpls [options] ftp://url.style/host/path/name/
Command line flags:
-m Use a machine readable list format, if the server supports it.
This requires that the server software support the MLSD exten
sions, and many implementations do not have these features.
-1 Most basic format, one item per line.
-l Long list format.
-C Columnized list format. This is the default list format.
-R Recurse all subdirectories while listing.
-a Show all files, if server allows it (as in "/bin/ls -a").
-i XX Filter the listing (if server supports it) with the wildcard
-x -XX Set the ls flags to use on the server.
-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
-d XX Use the file XX for debug logging.
-t XX Timeout after XX seconds.
-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.
-r XX Redial a maximum of XX times until connected to the remote FTP
-W XX Send raw FTP command XX after logging in.
-X XX Send raw FTP command XX after each file transferred.
-Y XX Send raw FTP command XX before logging out.
The -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 com
mands to set blocksize and record format information.
For these options, you can use them multiple times each if you
need to send multiple commands. For the -X option, you can use
the cookie %s to expand into the name of the file that was
-o XX Set advanced option XX.
This option is used primarily for debugging. It sets the value
of an internal variable to an integer value. An example usage
would be: -o useFEAT=0,useCLNT=1 which in this case, disables
use of the FEAT command and enables the CLNT command. The
available variables include: usePASV, useSIZE, useMDTM, useR
EST, useNLST_a, useNLST_d, useFEAT, useMLSD, useMLST, useCLNT,
useHELP_SITE, useSITE_UTIME, STATfileParamWorks, NLSTfileParam
Works, require20, allowProxyForPORT, doNotGetStartCWD.
The purpose of ncftpls is to do remote directory listings using the
File Transfer Protocol without entering an interactive shell. This
lets you write shell scripts or other unattended processes that can do
The default behavior is to print the directory listing in columnized
format (i.e. ls -CF), but that is not very useful for scripting. This
example uses the -1 flag, to print one file per line:
$ ncftpls -1 ftp://ftp.ncftp.com/pub/ncftp/
You can also do a remote "ls -l", by using "ncftpls -l". If you want
to try other flags, you have to use them with the -x flag. For exam
ple, if you wanted to do a remote "ls -lrt", you could do this:
$ ncftpls -x "-lrt" ftp://ftp.ncftp.com/pub/ncftp/
By default the program tries to open the remote host and login anony
mously, but you can specify a username and password information like
you can with ncftpget or ncftpput.
Note that the standard specifies that URL pathnames are are relative
pathnames. For FTP, this means that URLs specify relative pathnames
from the start directory, which for user logins, are typically the
users home directory. If you want to use absolute pathnames, you need
to include a literal slash, using the "%2F" code for a "/" character.
$ ncftpls -u linus ftp://ftp.kernel.org/%2Fusr/src/
$ ncftpls ftp://firstname.lastname@example.org/%2Fetc/
ncftpls 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 (http://www.ncftp.com).
ncftpput(1), ncftpget(1), ncftp(1), ftp(1), rcp(1), tftp(1).
ncftpls NcFTP Software ncftpls(1)