菜鸟科技网

Linux lftp命令有哪些实用技巧?

Linux 系统中,lftp 是一款功能强大的命令行文件传输工具,基于文本界面,支持多种协议(如 FTP、FTPS、HTTP、HTTPS、HFTP、FISH 等),具备自动操作、断点续传、多线程下载等高级特性,适合需要高效管理远程文件传输的场景,以下从安装、基本操作、高级功能及配置等方面详细介绍 lftp 命令的使用方法。

Linux lftp命令有哪些实用技巧?-图1
(图片来源网络,侵删)

安装与启动 lftp

在大多数 Linux 发行版中,lftp 可通过包管理器直接安装,以 Debian/Ubuntu 为例,执行 sudo apt update && sudo apt install lftp;CentOS/RHEL 系统则使用 sudo yum install lftpsudo dnf install lftp,安装完成后,在终端输入 lftp 即可启动,默认会进入交互式命令行界面,启动时可直接指定主机地址,如 lftp ftp.example.com,或通过 lftp -u username,host ftp.example.com 指定用户名和密码(密码输入时不会显示)。

基本连接与认证操作

lftp 支持多种协议连接,核心命令围绕连接、认证、目录浏览和文件传输展开。

连接与断开

  • open [host] [-p port] [-u user[,pass]]:打开与指定主机的连接,可指定端口和用户信息。open ftp.example.com -p 21 -u myuser,mypass
  • close:关闭当前连接,但保持 lftp 进程运行。
  • exitbye:退出 lftp,关闭所有连接。

认证与用户切换

  • user [username] [password]:重新认证或切换用户,如 user anotheruser anotherpass
  • pass:单独输入密码(在 user 命令后使用,避免密码暴露在命令历史中)。

目录操作

  • ls [remote-path]:列出远程目录内容,支持 -l(详细列表)、-a(显示隐藏文件)等选项,类似 Linux 的 ls 命令。
  • cd [remote-path]:切换远程目录,如 cd /pub/upload
  • lcd [local-path]:切换本地工作目录(影响上传/下载的默认路径)。
  • pwd:显示当前远程目录路径;lpwd 显示本地当前路径。
  • mkdir [dir-name]:在远程创建目录,支持多级目录(如 mkdir -p a/b/c)。
  • rmdir [dir-name]:删除远程空目录。

文件传输核心命令

lftp 的核心优势在于高效文件传输,支持单文件、批量操作及断点续传。

上传与下载

  • get [remote-file] [-o local-file]:下载远程文件到本地,-o 指定本地路径。get largefile.zip -o ~/downloads/
  • mget [remote-files]:批量下载多个文件,支持通配符(如 mget *.txt)。
  • put [local-file] [-r]:上传本地文件到远程,-r 可递归上传整个目录。
  • mput [local-files]:批量上传多个文件,如 mput *.jpg

传输控制

  • mirror [remote-dir] [local-dir] [-r]:同步目录,-r 表示反向同步(本地到远程)。mirror /remote/dir /local/dir 会将远程目录完整复制到本地,mirror -r /local/dir /remote/dir 则相反。
  • queue:查看当前传输队列,queue stop/start/clear 可控制队列状态。
  • set net:limit-rate [value]:限制传输速度,单位为字节/秒,如 set net:limit-rate 100000(限制为 100KB/s)。

断点续传

默认情况下,lftp 支持断点续传,若传输中断(如网络故障),重新执行相同命令即可继续未完成的传输,可通过 set ftp:sync-mode off 禁用同步模式(默认开启,确保文件完整性)。

Linux lftp命令有哪些实用技巧?-图2
(图片来源网络,侵删)

高级功能与脚本支持

lftp 提供丰富的自动化和高级功能,适合复杂场景使用。

多线程与并行传输

  • set ftp:parallel [number]:设置 FTP 传输的线程数,如 set ftp:parallel 5 可同时开启 5 线程下载,提升大文件传输速度。
  • pget [remote-file] [-n num]:多线程下载单个文件,-n 指定线程数,pget largefile.iso -n 8

批量操作与脚本

lftp 支持命令脚本执行,可通过 lftp -f script-file 运行脚本文件,或直接在命令行执行命令(如 lftp -c "open host; get file1; put file2"),脚本中可使用循环、条件判断等逻辑,例如批量下载:

open ftp.example.com
user myuser mypass
cd /pub/data
mget *.zip
exit  

书签管理

  • bookmark [add|list|delete] [name]:管理常用主机书签。bookmark add myftp ftp.example.com -u myuser 添加书签,bookmark myftp 可快速连接。

代理与协议支持

  • set ftp:proxy [proxy-server]:配置 FTP 代理服务器。
  • set ftp:ssl-force on:强制使用 FTPS(加密 FTP),提升传输安全性。

配置文件与优化

lftp 的默认行为可通过配置文件调整,通常位于 ~/.lftprc/etc/lftp.conf,常用配置项包括:

  • set cmd:ls "-l":默认 ls 命令添加 -l 选项。
  • set ftp:passive-mode on:开启被动模式(适用于防火墙环境)。
  • set net:reconnect-interval-base 10:重连间隔基数(秒)。

配置文件修改后,无需重启 lftp,重新加载即可生效(source ~/.lftprc)。

Linux lftp命令有哪些实用技巧?-图3
(图片来源网络,侵删)

常见问题与注意事项

  1. 连接超时:若长时间无操作导致连接断开,可通过 set net:timeout 30 调整超时时间(默认 30 秒)。
  2. 权限问题:上传文件时需确保远程目录有写权限,下载时本地目录需有读权限。
  3. 协议兼容性:部分老旧 FTP 服务器可能不支持多线程或断点续传,需通过 set ftp:sync-mode off 等命令调整参数。

相关问答 FAQs

问题 1:lftp 如何实现多线程下载?如何设置线程数?
解答:lftp 提供两种多线程下载方式:

  • 多文件并行:使用 mget 命令时,默认会开启多个线程同时下载不同文件(线程数可通过 set ftp:parallel [number] 设置,如 set ftp:parallel 5)。
  • 单文件分块:使用 pget 命令下载单个文件,pget largefile.iso -n 8 表示将文件分成 8 块并行下载,显著提升大文件下载速度。

问题 2:lftp 如何同步本地和远程目录,确保内容一致?
解答:使用 mirror 命令可实现双向目录同步:

  • 远程到本地mirror /remote/dir /local/dir,将远程目录完整复制到本地(会覆盖本地同名文件)。
  • 本地到远程mirror -r /local/dir /remote/dir-r 参数表示反向同步,将本地目录上传至远程。
  • 增量同步:默认情况下,mirror 会比较文件时间和大小,仅传输有变化的文件,避免重复传输,若需强制覆盖所有文件,可添加 --overwrite 参数。
分享:
扫描分享到社交APP
上一篇
下一篇