What's new in NcFTP 2.0: ----------------------- + Complete rewrite. I've been wanting to do this for a long time, and I can now say I'm proud of the code itself. It's cleaner, better organized, and more efficient. It's also better documented, for those of you who like to make your own hacks to the code. + Easier to install. I'm pleased to announce that a "configure" script is used, making it easier to install without reading that bloody README file. Kudos to GNU Autoconf for making this possible. + Full-screen "curses" support. The program now has a prettier, yet more functional interface. You can now do most of the configuration from within the program. You don't need to mess with any ".netrc"-type file. + Integrated Host Editor (More "recents!") You can now save information about as many hosts as you want. The program does it all automatically, so you don't need to worry about a .netrc or .ncrecent file at all. With the full-screen "visual" mode, you can use the new "hosts" command to pop up the integrated Host Editor. From there you can easily change stuff about the hosts, add/delete hosts, etcetera. You can use this to assign your own nicknames to sites. For example, you could assign "ncftp" to "cse.unl.edu" and do "open ncftp" from the command line. + Integrated Preferences Editor. Similarly, you can edit program options with the "prefs" command, which pops up the Preferences editor. + Better macros. You can have any number of global macros, including macros that take arguments. In addition, you can type their names as if they were regular commands. You put all your macros in a file called "macros" in your $HOME/.ncftp directory. You can also define special macros which will run upon a certain action, such as opening or closing a specific site, running or quitting the program, opening or closing any site. + Better command-line parser. The command line behaves closer to a real UNIX shell, with redirection and piping working like you'd expect. You don't have to follow any special rules like you did before (i.e. "get afile |cmd"). This works with almost all the commands, so you could do "version > version.info" for example. + More intuitive use of wildcards. There is no "mget" or "mput" commands anymore. You now always just use "get" and "put," and they function like "mget" and "mput" did. It seems more logical to just behave like the m* commands always. You can still get a file and rename it something else like the old "get" always did, but you have to use a special flag for that. + NcFTP shuts up during transfers when put in the background. This is nice when you want to get a big file, and not have the process suspend because ncftp updated the progress meter. + "Reget" support added. In fact, it's automatic. All you have to do is just "get" the same file. The program checks to see if you have the same file, but with a smaller size. If that is true, ncftp resumes the transfer from where it left off when the connection broke previously. + Recursive gets. You can now fetch whole directories at a time, by using the "-r" flag with the "get" command. For example, to get all the stuff in my FTP area, you could "get -r mgleason" which would make a "mgleason" directory and copy everything in it. + Skipping files you already have. (Get "new" files only.) NcFTP won't waste your time trying to fetch a file if it thinks you already have it. This is done automatically, but you can override this by using the force (-f) flag. This lets you "mirror" remote sites. You "get" a bunch of files, and the next time you call, do get in the same location and you'll only transfer the new files that arrived since the last time. You can also do this recursively, so you can mirror entire directory trees if you want. + Get "newer-than-X" files. You can tell ncftp to fetch files which are dated X days or newer only. This is another way to get new uploads, without keeping a mirror. To activate this, you would do something like "get -n 5 ./*.tar" to get all the Tar files in the current directory 5 days old or younger. Some differences to be aware about between older versions: --------------------------------------------------------- * Using "colon-mode" never enters the shell. Whenever you use it, the program will do it's thing, and exit. * You don't get the fancy prompts anymore when using "line" mode (i.e. you turned off visual mode by running with "ncftp -L"). * When in visual mode, you can't use GNU Readline or Getline. You can use them if not in visual mode though. In visual mode, you get to use my homegrown line editor/history. It lets you scroll through the history, and use some simple editing commands. * "get"/"put" always behaves like "mget"/"mput." * There is no .netrc file. You do get a ~/.ncftp directory, and in it you get files called "hosts" and "prefs." You can also put your "macros" file there, and if you have logging turned on, a file called "log" is stored there. * For "macdef init" macros, you need to put them in your "macros" file named as ".open.. So for an init macro for wuarchive, you would use a macro named ".open.wuarchive" instead. * Other commands previously supported for backwards compatibility with "ftp" are gone. So are some other less useful commands. * The gateway hack has been removed. You'll have to use SOCKS. * Hostname abbreviation rules have changed a bit. NcFTP assigns a unique nickname to site the first time you open it (this nickname can be changed using the host editor if you don't like it). When you try opening a site, you can either type it's full name again, or type it's nickname. You can abbreviate the nickname, but not other parts of the site name. For example, if you had an entry called "wuarchive.wustl.edu" in your host file with a nickname of "wuarchive," You could do "open wuarchive" or "open wuar" but "open wustl" would not. This avoids the confusion between abbreviations and local network hosts.