1. Introduction to lftp

lftp is a command-line client for transferring files via FTP, FTPS, HTTP, HTTPS, and other protocols. It is very versatile and offers advanced features like resuming downloads, directory synchronization, and background operations.

2. Installing lftp

To install lftp on a Debian/Ubuntu-based system, use the following command:

sudo apt-get update
sudo apt-get install lftp

On Red Hat/CentOS-based systems, use:

sudo yum install lftp

3. Basic Usage of lftp

Connecting to an FTP server:

lftp ftp://user@server

After executing this command, lftp will prompt you for a password. Once authenticated, you can navigate the FTP server as if you were using a local file system.

4. Basic Commands within lftp

  • Listing files:
    Use ls to list files in the current directory on the server.

    ls
  • Changing directory:
    Use cd to change directories.

    cd /path/to/directory
  • Downloading a file:
    Use get to download a file from the server to your local system.

    get file.txt
  • Uploading a file:
    Use put to upload a file from your local system to the server.

    put file.txt

5. Advanced Usage of lftp

Synchronizing Directories:

lftp can synchronize local directories with those on the remote server using the mirror command.

  • Downloading an entire directory:
    mirror /remote_directory /local_directory
  • Uploading an entire directory:
    mirror -R /local_directory /remote_directory

Resuming Interrupted Downloads and Uploads:

If a transfer is interrupted, lftp can resume it using the -c option.

get -c large_file.iso

6. Working in the Background

You can run tasks in the background in lftp using the bg command:

  • Starting a download in the background:
    get large_file.iso &

    You can then check the status of the background task with jobs and bring it to the foreground with fg.

7. Automating Tasks with lftp Scripts

You can automate tasks with lftp by creating scripts:

#!/bin/bash
lftp -e "mirror -R /local/path /remote/path; bye" -u user,password ftp://server

Save this script, give it execution permissions with chmod +x script.sh, and run it with ./script.sh.

8. Conclusion

lftp is a powerful tool for managing file transfers in Linux. With this manual, you can start using lftp for your basic and advanced file transfer needs.