LinuxLinks.com
Newbies What Next ? News Forums Calendar

Search





News Sections
Home
General News (3973/0)
Reviews (628/0)
Press Releases (464/0)
Distributions (187/0)
Software (870/0)
Hardware (522/0)
Security (192/0)
Tutorials (345/0)
Off Topic (181/0)


User Functions
Username:

Password:

Don't have an account yet? Sign up as a New User


Events
There are no upcoming events




Powerful Command-line File Transfer Programs

by Frazer Kline

The desktop environment with its bundle of programs sharing a common graphical user interface (GUI) remains a firm favorite with users. Not surprising really given that a good desktop environment makes computing fun and simple. The graphical desktop environment has become so ingrained in almost everyone's computer activities that it might seem the command line will wither away. Yet, there is still an important role to play for the humble command-line interface (CLI).

The CLI provides a way of interacting with a computer program where the user (or client) issues commands to the program in the form of successive lines of text (command lines). This way, the user gains full control over the operating system. There are many advantages in using a CLI application. They are generally frugal in using system resources, they are fast in operation, offer great scripting opportunities, and can be extremely powerful and flexible. Typing commands into a terminal or the console may appear mundane, but with the right tools, the command line can be incredibly powerful. A CLI app may also save your bacon one day; it has mine!

File Transfer Protocol (FTP) used to be a popular and time-honored method of transferring files to and from a remote network site. The need for FTP has declined significantly; many consider FTP to be an unfriendly protocol when it comes to accessing data. Further, it is an insecure protocol as it sends your credentials in plain text to the server. However, there are still occasions where transferring files via this protocol has been useful; the time to put FTP to bed has not yet come.

This article provides my pick of the best open source command line file transfer programs. The software featured here supports a number of different protocols, not just FTP. They offer shell-like command syntax, and are great for scripting purposes.


LFTP

LFTP in action

LFTP is a mature open source file retrieving tool. Besides FTP, it supports a large number of protocols including FTPS, HTTP, HTTPS, FISH, SFTP and BitTorrent protocols under both IPv4 and IPv6. LFTP has an excellent array of features, while preserving its interface as simple and easy as possible.

LFTP's main two advantages over other ftp clients are reliability and the ability to perform tasks in background. It will reconnect and reget the file being transferred if the connection is dropped. Users can start a transfer in the background and continue browsing the ftp site. It does this all in one process. When you have started background jobs and feel you are done, you can exit LFTP and it automatically moves to nohup mode and completes the transfers. It also has handy features as reput and mirror. This application can also download a file as quickly as possible by using several connections at the same time, maximising the bandwidth of the connection.

LFTP is scriptable, it can be used to mirror sites, it lets you copy files among remote servers (even between FTP and HTTP). It has an extensive online help. It supports bookmarks, and connecting to several ftp/http sites at the same time.

Features include:

  • FTP and HTTP protocol support
  • FTP (e.g. TIS FWTK) and HTTP proxy support
  • FTP over HTTP proxy support (hftp and CONNECT method)
  • HTTPS and FTPS protocols support using GNU TLS or OpenSSL library
  • Automatic OPIE/SKEY support in FTP protocol
  • FXP transfers support (between two FTP servers, bypassing client machine)
  • FTP listings support: unix-style, NT, EPLF, OS/2, AS400, MacWebStar, MLSD
  • Automatic reconnect and retry of an operation on retriable errors or timeout
  • IPv6 support in both FTP and HTTP
  • FISH protocol support. It uses ssh with no special program on server side
  • SFTP protocol v3-v6 support
  • HTTP/1.1 keep-alive support
  • Partial WebDAV support
  • BitTorrent protocol support
  • Experimental support for SRV DNS records
  • SOCKS support
  • Modification time preservation (if server can report it)
  • 'reget' and `reput' support
  • Built-in mirror and reverse mirror (mirror -R)
  • Transfer rate throttling for each connection and for all connections
  • Limit for number of connections to the same site. Interruption of background transfer to do a foreground operation when the limit is reached
  • Socket options tuning: buffer size and maximum segment size
  • Job queueing
  • Job execution at specified time
  • Comprehensive scripting support
  • URL recognition in most operations
  • Readline library is used for input
  • Context sensitive completion
  • Bash-like prompt extensions
  • Launching of local shell commands
  • Suspend support
  • Bookmarks
  • Aliases - for example, this feature lets the user edit remote files
  • Saving of last directory on each site. `cd -' to go there
  • Copying of files between two servers, e.g. between FTP and HTTP
  • Numerous settings which can be associated with a specific server or a group
  • Paging of remote files using external program
  • 'zcat' and `zmore' support
  • Help for commands
  • Command history saved in a file
  • Transfer status includes rate and ETA
  • File listing cache
  • Background jobs (bash-like)
  • Job output redirection to a file or to a program via pipe
  • Conditional commands depending on exit status of previous one
  • Loading of binary modules at run time
  • Segmented file transfer - 'pget' to download a file using several connections 'pget' download can be continued as it saves a status file periodically
  • 'mirror' can download several files in parallel (--parallel option) and a single file with `pget'
  • Slots. Each slot is a separate session, switch using Meta-{1-9} or `slot' command. Refer to a slot site using pseudo URL slot:name
  • Website: lftp.yar.ru
  • Developer: Alexander V. Lukyanov
  • License: GNU GPL v3
  • Version Number: 4.5.4

NcFTP

NcFTP in action

NcFTP is a console based user interface File Transfer Protocol (FTP) client program.

The purpose of NcFTP is to provide a powerful and flexible interface. It is intended to replace the stock ftp program that comes with the system.

NcFTP has a wealth of valuable performance and usage features. The program was designed with an emphasis on usability, and it does as much as it can for you automatically so you can do what you expect to do with a file transfer program, which is transfer files between two interconnected systems.

Features include:

  • Progress meters
  • Filename completion
  • Command-line editing
  • Background processing
  • Auto-resume downloads
  • Cached directory listing
  • Bookmarking
  • Host redialing
  • Download entire directory trees
  • Host redialing
  • Useful additional utility programs (ncftpget, ncftpput and ncftpbatch)
  • Website: www.ncftp.com/ncftp
  • Developer: NcFTP Software Inc.
  • License: Clarified Artistic License
  • Version Number: 3.2.5

Yafc

Yafc in action

Yafc is an FTP client intended to be a replacement for the standard ftp program. Features include directory cache, remote filename completion, aliases, colored ls, recursive get/put/ls/rm, nohup mode transfers, tagging (queueing), background downloading, and more.

Features include:

  • Cached directory listings
  • Extensive tab completion
  • Multiple connections open
  • Automatic reconnect on timed out connections
  • Aliases
  • Colored ls
  • Autologin and bookmarks
  • Kerberos support (version 4 and 5, heimdal, kth-krb or MIT)
  • SFTP support (SSH2, supports .ssh/config)
  • Recursive get/put/fxp/rm/ls
  • Stats after large get or put
  • Nohup mode get and put
  • Tagging (queueing) of files for later transferring
  • Automatically enters nohup-mode when SIGHUP received (in get and put)
  • Redirection to local command or file ('>', '>>' and '|')
  • Proxy support
  • Variable substitution for shell commands
  • Ignore masks for uploads
  • IPv6 support
  • Website: www.yafc-ftp.com
  • Developer: Martin Hedenfalk
  • License: GNU GPL v2
  • Version Number: 1.3.4

cURL

cURL in action

cURL is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP.

curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other useful tricks.

curl is powered by libcurl for all transfer-related features.

Features include:

  • Config file support
  • Multiple URLs in a single command line
  • Range "globbing" support: [0-13], {one,two,three}
  • Multiple file upload on a single command line
  • Custom maximum transfer rate
  • Redirectable stderr
  • Metalink support
  • Website: curl.haxx.se
  • Developer: Daniel Stenberg
  • License: MIT/X derivate license
  • Version Number: 7.37.1


Last Updated Monday, August 25 2014 @ 09:19 AM EDT


We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, SQL, Node.js (new), Fortran (new), Erlang (new), Pascal (new), and Ada (new).


Group Tests
All Group Tests

Top Free Software
6 Office Suites
7 Document Processors
6 Lean Desktops
6 Desktop Search
9 Project Management
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 DVD Tools
21 Window Managers
21 Productivity Tools
9 Terminal Emulators
21 Financial Tools
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
11 Remote Display Apps
42 Best Games
42 More Games
21 More Games
21 Notable Games (1)
21 Notable Games (2)
21 Notable Games (3)
8 ASCII Games
9 Educational Games
42 Audio Apps
42 Video Apps
6 Screencasting Apps
80 Security Apps
9 System Monitoring
6 Family History Apps
11 PDF Tools
6 Music Servers
6 Collection Managers
7 Calculator Apps
8 Geometry Apps
Free Console Apps
14 Multimedia
Programming
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
'Free' Proprietary
21 Closed-Source Apps
Top Commercial Apps
42 Games
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

All Group Tests

Other Articles
Migrating from Windows
Back up your data
Distribution Guide
Distro Portal Pages
20 Free Linux Books
Running Linux Under Windows


Older Stories
Monday 06/02
  • Delightful ASCII Art Tools (0)

  • Saturday 05/31
  • Best Tools for Network Inventory Management (0)

  • Sunday 05/25
  • Grab 24 Beautifully Scribed Free Programming Books (0)
  • 6 Invaluable Free Ada Books (0)

  • Thursday 05/15
  • 4 Best Free Pascal Books (0)

  • Saturday 05/10
  • 5 Best Free Erlang Books (0)

  • Sunday 05/04
  • The 9 Best Free Fortran Books (0)

  • Thursday 05/01
  • 5 Best Free Node.js Introductory Books (0)

  • Sunday 04/27
  • Tools to Empower Librarians (0)

  • Saturday 04/19
  • Create Vector Graphics with Open Source Software (0)


  • Vote

    What do you find MOST attractive about Open Source software?

    Amount of customization
    Security
    Freedom provided
    Speed of development
    Quality
    Multiple versions
    Cost
    Potential to contribute
    Ability to modify code
    Results
    4807 votes | 2 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 LinuxLinks.com - All rights reserved