当前位置: 首页 > article >正文

Linux 性能更好的ftp客户端 lftp 使用详解

简介

LFTP 是一个命令行 FTP 客户端,支持多种文件传输协议,包括 FTP、FTPS、HTTP、HTTPS和SFTP 。它以其通过镜像、后台操作和脚本支持等特性有效管理复杂传输的能力而闻名。

安装

  • Ubuntu/Debian
sudo apt update
sudo apt install lftp
  • CentOS/RHEL/Fedora
sudo yum install lftp

常用选项

  • -u:指定用户名和密码

  • -e:打开连接后执行命令

  • -f:使用脚本文件执行命令

  • -c:启动 LFTP 并直接运行命令(无需进入交互模式)

  • --parallel:启用多个并行连接以提高下载/上传速度

  • -p:为 FTP 或 SFTP 服务器设置自定义端口

常用子命令

  • open:打开与服务器的连接

  • ls:列出远程服务器上的文件和目录

  • cd:更改远程服务器上的目录

  • get:从远程服务器下载文件

  • put:将文件上传到远程服务器

  • mget:下载多个文件

  • mput:上传多个文件

  • mirror:镜像(同步)目录

  • exit:退出 LFTP 会话

  • set:设置各种 LFTP 选项(例如速度限制)

  • -u username,password:指定用户名和密码

  • -e "command":连接后执行单个命令

示例用法

启动 LFTP

只需在终端中输入 lftp 即可启动 LFTP 交互模式

lftp
连接到服务器

使用 open 命令连接到服务器。适用于任何受支持的协议(FTP、FTPS、SFTP 等)

lftp open ftp://username:password@hostname

示例

lftp open ftp://user:password@ftp.example.com

使用SFTP

lftp sftp://username@hostname

具有显式 SSL/TLS 加密的 FTP(FTPS)

lftp -u username,password -e "set ftp:ssl-allow yes; open ftp://hostname"
列出远程服务器上的文件
ls
更改目录
cd remote_directory
上传文件
put local_file
上传多个文件
mput *.txt
下载文件
get remote_file
下载多个文件
mget *.txt
镜像目录
  • 将远程镜像到本地
mirror remote_directory local_directory
  • 本地镜像到远程
mirror -R local_directory remote_directory
  • 使用附加选项进行镜像

使用 --delete 删除源上不再存在的文件

mirror --delete remote_directory local_directory
退出 LFTP
exit
后台传输
lftp -e "get remote_file &"
后台传输多个命令

多个命令用分号隔开

lftp -e "open ftp://username:password@hostname; get remote_file; exit"
在脚本中使用 LFTP
#!/bin/bash
lftp -e "open ftp://username:password@hostname; put local_file; get remote_file; exit"
设置传输速率
lftp -e "set net:limit-rate 100000; open ftp://username:password@hostname; get remote_file; exit"
递归文件下载
lftp -e "mirror --reverse --verbose /remote_path /local_path; exit"
并行连接
lftp -u username,password -e "set mirror:parallel-transfer-count 5; mirror remote_directory local_directory; exit"

http://www.kler.cn/a/558258.html

相关文章:

  • PHP Libxml:深入解析XML解析库及其在PHP中的应用
  • 【WebGL】attribute方式实例化绘制
  • 深入理解 SQL 事务隔离级别:脏读、不可重复读和幻读
  • 编程考古-忘掉它,Delphi 8 for the Microsoft .NET Framework
  • Redis作为缓存和数据库的数据一致性问题
  • ES6中Object.defineProperty 的详细用法和使用场景以及例子
  • php文件上传
  • _vm.xxxxxx is not a function“ vue2错误
  • 贪心算法
  • 基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
  • 使用Java爬虫获取1688 item_search_factory 接口的工厂搜索数据
  • 网页请求腾讯云环境的云函数
  • [Android]如何让APP快速被系统杀掉
  • 在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键
  • 文本分类与情感分析算法
  • 图解【提示工程 VS 微调 VS RAG、全量微调 VS LoRA微调、TopK VS TopP】截图笔记
  • IGBT的损耗性分析
  • deepseek自动化代码生成
  • 知识图谱-学习计划
  • C语言 / C#改造冒泡排序函数bubble_sort()