Transferring Files with gFTP

Author Note: This was originally posted on linux.com in 2008. I am replicating it here for posterity.

gFTP is a complete, easy to use file transfer tool for the Linux desktop. In spite of its name, gFTP can transfer files using more than standard FTP; it also has several other features that make it more than just another average FTP client. This article will show you thebasics and all the other features that make gFTP the favorite FTP client of many Linux users.

Getting Stated

The gFTP interface is arranged into three main sections; tool/connection bar, file transfer windows, and a progress/log area (see the image to the right). The connection bar, as its name suggest, is where connection settings are entered. The transfer window is where all of the file management and transfer initiation takes place. Finally, the progress/log area contains a pane that shows the transfer status of files and a scrolling log of all the actions in the current session.

When gFTP is launched the transfer window on the left (Window 1) is defaulted to your home directory; the file transfer window on the right (Window 2) is empty. To establish a connection with a remote host fill out the settings in the connection bar and click the connect/disconnect button (the icon on the left side of the connection bar). If the settings are correct, gFTP should connect to the host and display the file system in Window 2. If you want to keep the host settings for future reference click Bookmarks > Add Bookmark; gFTP will add the settings, including the password if requested, to the list of bookmarks.

Once you are connected, transferring files is as simple as selecting the ones you want and clicking the arrows between the transfer windows. You can also transfer single directories by dragging-and-dropping the directory into the opposite transfer window. Once a transfer has been started gFTP will show a list of the files, and their transfer progress, in the progress pane. Several messages will also appear in the log explaining exactly what gFTP is doing. If you need to stop a transfer or perform any other action on the transfer, such as skipping a file or reordering the files, right click the progress pane and a list of options will appear; these options can also be found in the Transfers menu on the toolbar.

gFTP also has the ability to preform various file management tasks on the local and remote system. These tasks include creating new directories, changing permissions (Chmod), changing directories, renaming files/directories, viewing files, and editing files. The tasks can be found in the right click menus of the transfer windows; they can also be found in the Local and Remote toolbar menus. These menus also include tools to select and filter files. “Change Filespec” will let you define a regular expression filter that causes the transfer window to only show matching files. The rest of the tools allow you to select sets of files in the window; “Show selected” filters out all files except the selected one, “Select All” selects all of the files and directories in the respective window, “Select Files” selects all of the files in the respective window, “Deselect All” clears the selection. You will also notice that every time one of these tasks are executed a log message is added to the log at the bottom of the window.

Other Transfer Protocols

gFTP is not just for FTP, it has several other transfer protocols:

HTTP/HTTPS (Hypertext Transfer Protocol) is the protocol that makes the web work. gFTP will allow you to connect to websites, browse, and download files that are available. There are some limitations though; the gFTP HTTP transfer tools are designed for websites that utilize directory browsing. Sites that have default pages or have directory browsing disabled will appear to not have any files in the file transfer window. When using HTTP transfers do not put the http:// in front of the host address and when connecting to a secure site you have to manually install the servers SSL certificate (check your OpenSSL setting to find out how to do this).

SSH (Secure Shell) is a protocol used to securely connect to servers over a command shell. SSH transfers are useful in environments where FTP is not trusted or not available.

FSP (File Service Protocol) is a UDP (User Datagram Protocol) protocol for transferring files. FSP is mostly used as a replacement for anonymous FTP.

Options and Settings

gFTP has several settings and configuration options; all of the settings can be viewed and changed by opening the options dialog (FTP > Options). In the options dialog there are several tabs, the following is a short breakdown.

  • General contains the basic settings for gFTP. Most of these settings are self explanatory and do not need to be changed. The ones that do need to be changed are the “View program” and “Edit program”. These settings control what program is ran when you select the Edit and View options in the Local and Remote menus; gedit (the default Gnome text editor) is a good choice for both of these settings.
  • Network allows you to configure timeouts, retries, transfer rates and other network related settings.
  • FTP houses proxy, anonymous FTP, and transfer mode settings. Important settings on this tab include passive mode (more information about FTP modes) and ASCII transfer mode settings.
  • HTTP has proxy configuration options.
  • SSH allows you to set a custom program and settings to use when establishing SSH connections.
  • Local Hosts is where you can add custom network host and domain information.

Advanced Tools

gFTP also has a handful of extra features that come in useful from time to time. One of these features is the ability to directly move files between two hosts. To enable transfers between two hosts you have to connect to a host in Window 2 then change the connection window to Window 1 (FTP > Window 1 from the toolbar) and connect to another host. Once the two connections have been made transfers can be initiated between the two hosts.

As mentioned earlier, gFTP will allow you to set an editor, and send files direct to the application by right clicking on them. In addition to doing this gFTP will automatically upload any changes made to a file on a remote host. This little feature is very handy for making quick changes to configuration files.

Another advanced feature is the ability to compare two hosts. gFTP does this by selecting the files and folders that are different in the two transfer windows; difference is defined as exists or does not exist, not the difference of individual files.

gFTP also includes a command line interface; however, may distributions include the command line version as a separate package. For the most part the command line version functions in the same way as the standard ftp utility; notable differences include the ability to use ssh transfers and download directories recursively. There is more information about the command line interface on the gFTP website.

In addition to the command line version, gFTP will allow you to send site commands to a remote host. Site commands are FTP commands that are server specific and not part of the FTP standard. You can send a site command by right clicking on one of the transfer windows and selecting “Send SITE Command”, the same feature can also be found in the Local and Remote toolbar menus.

gFTP is a like the Linux file transfer Swiss army knife. As you can see it is packed with features and can be very helpful. It is definitely something that any Linux user should check out.