Yafc ftp client
Data Shovel
The console-based yafc client gives users a convenient, simple, and interactive approach to exchanging data with ftp and SSH servers.
Although most Linux distributions typically include an ftp program, it is likely to be less than intuitive. And the same thing can be said about the web-based ftp solutions offered by various providers.
Modern desktops like Gnome or KDE include ftp extensions that support drag and drop, but they are of little use if you need to set the permissions for the files on the server, and they do not lend themselves to scripting. The yafc ftp client [1] (Yet Another Ftp Client) might be slightly older – and console based, like ftp – but it also offers more options and is more convenient to use (Figure 1).
On Ubuntu, you can sudo apt-get install yafc to install the tool on your hard disk. SUSE has version 1.1.1 as a binary package, and you can run the package manager to install it. If the distribution of your choice does not include yafc, you will find the source code for a build-it-yourself version on the project website.
Before you can use ftp and yafc to transfer data, you need access to the ftp server at the other end. On top of this, you need credentials – a username and a password. To open a connection to the server in a terminal window, type a command with the following syntax:
$ yafc Options Protocol://User:Password@Server:Port/Directory
The most useful options here include -a for anonymous access (which the server needs to support) or -q to suppress the welcome text. Typing yafc -h displays a full list of options.
If you do not specify the protocol, yafc will default to ftp://. Alternatively, the client also supports encrypted ssh:// communications (see Figure 2).
The server at the other end will need to be an SSH server rather than an ftp server in this case. In contrast to ftp, the advantage is that cleartext passwords are not sent.
Besides the protocol, you can also omit the username. Yafc will then supply your local username. The -u option suppresses this default behavior, and then yafc will prompt you to enter a username. In addition to the username, you can type a password for your account on the server with a colon as the separating character. For security reasons, this is only recommended for automated scripts – or situations in which you are sure that nobody is shoulder surfing.
Although you must type the server name, the port is not required unless the server at the other end uses a non-standard port. If needed, you can specify the directory on the server in which you want yafc to start working.
The command
$ yafc ssh://hopfnehn@172.17.0.221:/documents
opens an SSH-encrypted connection to the server at 172.17.0.221 for the user hopfnehn. Then the server prompts the user for the password and grants the ftp client to the /documents directory.
Yafc can handle multiple, parallel connections to servers. The command
$ yafc ssh://hopfnehn@172.17.0.221:/documents ssh://hoepfner@172.17.0.222
tells yafc to open another connection parallel to the existing one. To toggle between the two connections, you can type the switch command in interactive mode.
Instead of opening a connection to a server when you launch yafc, you can launch the client in interactive mode. The command
yafc> open ssh://hopfnehn@172.17.0.221:/documents ssh://hoepfner@172.17.0.222
at the yafc command-line prompt opens connections to the required servers.
Interactive Mode
After opening a connection, yafc switches to interactive mode, from which you can type commands to transfer files. Several commands are available for this, and they also support navigating the server and client directories.
Just like the familiar shell command, ls lists the current server directory, cd directory changes to another directory, and pwd tells you your current working directory (Figure 3). To run these commands locally instead of on the server, just type an exclamation mark before the command. To get a list of commands, enter help.
The put command transfers a file from the client to the server, and get retrieves a file from the server and stores it on the client. Yafc might prompt you before overwriting existing files or directories. One big advantage over other console-based ftp programs is yafc's ability to recursively transfer directories. The put -r test/ command not only copies the test directory to the server, but also all the files and subdirectories below it. If needed, recursion in combination with get helps users create complete backup copies of their server data.
After exchanging data, you can close your connection(s) with the close command and quit yafc by typing exit.
Conclusions
Console-based ftp clients are the tool of choice for manual or scripted file transfers for large numbers of files. Yafc, as one of the most convenient representatives of this species, has far more in the line of functionality to offer than the standard ftp client. Besides the options I looked at here, it also supports proxies or NOHUP data transmissions, during which transmission continues despite the user logging off – as long as the computer is running.
Infos
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Juno Computers Launches Another Linux Laptop
If you're looking for a powerhouse laptop that runs Ubuntu, the Juno Computers Neptune 17 v6 should be on your radar.
-
ZorinOS 17.1 Released, Includes Improved Windows App Support
If you need or desire to run Windows applications on Linux, there's one distribution intent on making that easier for you and its new release further improves that feature.
-
Linux Market Share Surpasses 4% for the First Time
Look out Windows and macOS, Linux is on the rise and has even topped ChromeOS to become the fourth most widely used OS around the globe.
-
KDE’s Plasma 6 Officially Available
KDE’s Plasma 6.0 "Megarelease" has happened, and it's brimming with new features, polish, and performance.
-
Latest Version of Tails Unleashed
Tails 6.0 is based on Debian 12 and includes GNOME 43.
-
KDE Announces New Slimbook V with Plenty of Power and KDE’s Plasma 6
If you're a fan of KDE Plasma, you'll be thrilled to hear they've announced a new Slimbook with an AMD CPU and the latest version of KDE Plasma desktop.
-
Monthly Sponsorship Includes Early Access to elementary OS 8
If you want to get a glimpse of what's in the pipeline for elementary OS 8, just set up a monthly sponsorship to help fund its continued existence.
-
DebConf24 to be Held in South Korea
Busan will be the location of the latest DebConf running July 28 through August 4
-
Fedora Unleashes Atomic Desktops
Fedora has combined its solid distribution with rpm-ostree system to make it possible to deliver a new family of Fedora spins, called Fedora Atomic Desktops.
-
Bootloader Vulnerability Affects Nearly All Linux Distributions
The developers of shim have released a version to fix numerous security flaws, including one that could enable remote control execution of malicious code under certain circumstances.