NcFTP Command Reference
- The first command to know is help. If you just type
- from the command shell, the program prints the names of all of the supported commands. From there, you can get specific help for a command by typing the command after, for example:
- prints information about the open command.
- This command sets the transfer type to ASCII text. This is useful for text-only transfers because the concept of text files differs between operating systems. For example on UNIX, a text file denotes line breaks with the linefeed character, while on MS-DOS a line break is denoted by both a carriage return character and a line feed character. Therefore, for data transfers that you consider the data as text you can use ascii to ensure that both the remote system and local system translate accordingly. The default transfer type that ncftp uses is not ASCII, but straight binary.
- These commands correspond to the get and put commands explained below, except that they do the job in the background. Normally when you do a get then the program does the download immediately, and does not return control to you until the download completes. The background transfers are nice because you can continue browsing the remote filesystem and even open other systems. In fact, they are done by a daemon process, so even if you log off your UNIX host the daemon should still do your transfers. The daemon will also automatically continue to retry the transfers until they finish. To tell when background jobs have finished, you have to examine the $HOME/.ncftp/spool/log file, or run the jobs command from within NcFTP.
- Both the bgget and bgput commands allow you to schedule when to do the transfers. They take a "-@" parameter, whose argument is a date of the form YYYYMMDDhhmmss (four digit year, month, day, hour, minute, second). For example, to schedule a download at 3 AM on November 6, you could try:
bgget -@ 19971106030000 /pub/idstuff/quake/q2_100.zip
- This command tells ncftp to immediately start the background transfers you've requested, which simply runs a copy of the ncftpbatch program which is responsible for the background jobs. Normally the program will start the background job as soon as you close the current site, open a new site, or quit the program. The reason for this is because since so many users still use slow dialup links that starting the transfers would slow things to a crawl, making it difficult to browse the remote system. An added bonus of starting the background job when you close the site is that ncftp can pass off that open connection to the ncftpbatch program. That is nice when the site is always busy, so that the background job doesn't have to wait and get re-logged on to do its job.
- Sets the transfer type to raw binary, so that no translation is done on the data transferred. This is the default anyway, since most files are in binary.
- Saves the current session settings for later use. This is useful to save the remote system and remote working directory so you can quickly resume where you left off some other time. The bookmark data is stored in your $HOME/.ncftp/bookmarks file.
- Lists the contents of your $HOME/.ncftp/bookmarks file in a human-readable format. You can use this command to recall the bookmark name of a previously saved bookmark, so that you can use the open command with it.
- Acts like the "/bin/cat" UNIX command, only for remote files. This downloads the file you specify and dumps it directly to the screen. You will probably find the page command more useful, since that lets you view the file one screen at a time instead of printing the entire file at once.
- Changes the working directory on the remote host. Use this command to move to different areas on the remote server. If you just opened a new site, you might be in the root directory. Perhaps there was a directory called "/pub/news/comp.sources.d" that someone told you about. From the root directory, you could:
cd pub cd news cd comp.sources.d
- or, more concisely,
- Then, commands such as get, put, and ls could be used to refer to items in that directory. Some shells in the UNIX environment have a feature I like, which is switching to the previous directory. Like those shells, you can do:
to change to the last directory you were in.
- Acts like the "/bin/chmod" UNIX command, only for remote files. However, this is not a standard command, so remote FTP servers may not support it.
- Disconnects you from the remote server. The program does this for you automatically when needed, so you can simply open other sites or quit the program without worrying about closing the connection by hand.
- This command is mostly for internal testing. You could type
- to turn debugging mode on. Then you could see all messages between the program and the remote server, and things that are only printed in debugging mode. However, this information is also available in the $HOME/.ncftp/trace file, which is created each time you run ncftp. If you need to report a bug, send a trace file if you can.
- Prints a detailed directory listing. It tries to behave like UNIX's "/bin/ls -l" command. If the remote server seems to be a UNIX host, you can also use the same flags you would with ls, for instance
- would try to act like
would on UNIX.
- Downloads into a temporary file for editing on the local host, then uploads the changed file back to the remote host.
- Copies files from the current working directory on the remote host to your machine's current working directory. To place a copy of "README" and "README.too" in your local directory, you could try:
get README README.too
- You could also accomplish that by using a wildcard expression, such as:
- This command is similar to the behavior of other FTP programs' mget command. To retrieve a remote file but give it a different name on your host, you can use the "-z" flag. This example shows how to download a file called ReadMe.txt but name it locally as README:
get -z ReadMe.txt README
- The program tries to "resume" downloads by default. This means that if the remote FTP server lost the connection and was only able to send 490 kilobytes of a 500 kilobyte file, you could reconnect to the FTP server and do another get on the same file name and it would get the last 10 kilobytes, instead of retrieving the entire file again. There are some occasions where you may not want that behavior. To turn it off you can use the "-f" flag.
- There are also times where you want to append to an existing file. You can do this by using the "-A" flag, for example
get -A log.11
- The get command lets you retrieve entire directory trees, too. Although it may not work with some remote systems, you can try "get -R" with a directory to download the directory and its contents.
- When using the "-R" flag, you can also use the "-T" flag to disable automatic on-the-fly TAR mode for downloading whole directory trees. The program 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.
would append to a file named "log.11" if it existed locally.
Another thing you can do is delete a remote file after you download it. This can be useful when a remote host expects a file to be removed when it has been retrieved. Use the double-D flag, such as "get -DD" to do this.
- Views the list of currently executing NcFTP background tasks. This actually just runs ncftpbatch -l for you.
- The lcd command is the first of a few "l" commands that work with the local host. This changes the current working directory on the local host. If you want to download files into a different local directory, you could use lcd to change to that directory and then do your downloads.
- Runs "/bin/chmod" on the local host.
- Another local command that comes in handy is the lls command, which runs "/bin/ls" on the local host and displays the results in the program's window. You can use the same flags with lls as you would in your command shell, so you can do things like:
lcd ~/doclls -lrt p*.txt
- Runs "/bin/mkdir" on the local host.
The program also has a built-in interface to the name service via the lookup command. This means you can lookup entries for remote hosts, like:
lookup cse.unl.edu ftp.cs.unl.edu sphygmomanometer.unl.edu
cse.unl.edu 126.96.36.199 typhoon.unl.edu 188.8.131.52 sphygmomanometer.unl.edu 184.108.40.206
There is also a more detailed option, enabled with "-v," i.e.:
lookup -v cse.unl.edu ftp.cs.unl.edu
cse.unl.edu: Name: cse.unl.edu Address: 220.127.116.11 ftp.cs.unl.edu: Name: typhoon.unl.edu Alias: ftp.cs.unl.edu Address: 18.104.22.168
You can also give IP addresses, so this would work too:
- Views a local file one page at a time, with your preferred $PAGER program.
- Prints the current local directory. Use this command when you forget where you are on your local machine.
- Runs "/bin/mv" on the local host.
- Runs "/bin/rm" on the local host.
- Runs "/bin/rmdir" on the local host.
- Prints a directory listing from the remote system. It tries to behave like UNIX's "/bin/ls -CF" command. If the remote server seems to be a UNIX host, you can also use the same flags you would with ls, for instance
- would try to act like
- ncftp has a powerful built-in system for dealing with directory listings. It tries to cache each one, so if you list the same directory, odds are it will display instantly. Behind the scenes, ncftp always tries a long listing, and then reformats it as it needs to. So even if your first listing of a directory was a regular "ls" which displayed the files in columns, your next listing could be "ls -lrt" and ncftp would still use the cached directory listing to quickly display the information for you!
would on UNIX.
- Creates a new directory on the remote host. For many public archives, you won't have the proper access permissions to do that.
- Establishes an FTP control connection to a remote host. By default, ncftp logs in anonymously to the remote host. You may want to use a specific user account when you log in, so you can use the "-u" flag to specify which user. This example shows how to open the host "bowser.nintendo.co.jp" using the username "mario:"
open -u mario bowser.nintendo.co.jp
Here is a list of flags you can use with the open command:
|-u XX||Use username XX instead of anonymous.|
|-p XX||Use password XX with the username.|
|-j XX||Use account XX in supplement to the username and password (deprecated)|
|-P XX||Use port number XX instead of the default FTP service port (21).|
- Browses a remote file one page at a time, using your $PAGER program. This is useful for reading README's on the remote host without downloading them first.
- These commands are equivalent to dir and ls respectively, only they feed their output to your pager. These commands are useful if the directory listing scrolls off your screen.
- Copies files from the local host to the remote machine's current working directory. To place a copy of "xx.zip" and "yy.zip" in the remote directory, you could try:
put xx.zip yy.zip
- You could also accomplish that by using a wildcard expression, such as:
- This command is similar to the behavior of other FTP programs' mput command. To send a remote file but give it a different name on your host, you can use the "-z" flag. This example shows how to upload a file called "ncftpd-2.0.6.tar.gz" but name it remotely as "NFTPD206.TGZ:"
put -z ncftpd-2.0.6.tar.gz NFTPD206.TGZ
- The program does not try to "resume" uploads by default. If you do want to resume an upload, use the "-z" flag.
- There are also times where you want to append to an existing remote file. You can do this by using the "-A" flag, for example
put -A log11.txt
- Another thing you can do is delete a local file after you upload it. Use the double-D flag, such as "put -DD" to do this.
- The put command lets you send entire directory trees, too. It should work on all remote systems, so you can try "put -R" with a directory to upload the directory and its contents.
would append to a file named "log11.txt" if it existed on the remote server.
- Prints the current remote working directory. A portion of the pathname is also displayed in the shell's prompt.
- Of course, when you finish using the program, type quit to end the program (You could also use bye, exit, or ^D).
- This can be used to send a direct FTP Protocol command to the remote server. Generally this isn't too useful to the average user.
- If you need to change the name of a remote file, you can use the rename command, like:
rename SPHYGMTR.TAR sphygmomanometer-2.3.1.tar
- Sends a help request to the remote server. The list of FTP Protocol commands is often printed, and sometimes some other information that is actually useful, like how to reach the site administrator. Depending on the remote server, you may be able to give a parameter to the server also, like:
- One server responded:
Syntax: NLST [ <sp> path-name ]
- If you need to delete a remote file you can try the rm command. Much of the time this won't work because you won't have the proper access permissions. This command doesn't accept any flags, so you can't nuke a whole tree by using "-rf" flags like you can on UNIX.
- Similarly, the rmdir command removes a directory. Depending on the remote server, you may be able to remove a non-empty directory, so be careful.
- This lets you configure some program variables, which are saved between runs in the $HOME/.ncftp/prefs file. The basic syntax is:
set <option> <value>
- For example, to change the value you use for the anonymous password, you might do:
set anon-password firstname.lastname@example.org
- This lets you display program variables. You can do "show all" to display all of them, or give a variable name to just display that one, such as:
- One obscure command you may have to use someday is site. The FTP Protocol allows for "site specific" commands. These "site" commands vary of course, such as:
site chmod 644 README
Actually, ncftp's chmod command really does the above.
Try doing one of these to see what the remote server supports, if any:
- You may need to change transfer types during the course of a session with a server. You can use the type command to do this. Try one of these:
type ascii type binary type image
- The ascii command is equivalent to "type a", and the binary command is equivalent to "type i" and "type b".
- Sets the process' umask on the remote server, if it has any concept of a umask, i.e.:
However, this is not a standard command, so remote FTP servers may not support it.
- This command dumps some information about the particular edition of the program you are using, and how it was installed on your system.
Source: NcFTP homepage