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

Linux命令-ncftp(增强的的FTP工具)

ncftp是 Linux 中一个功能强大的 FTP 客户端提供了比传统ftp命令更丰富的功能和更友好的界面。它支持自动登录、断点续传、递归传输、书签管理等功能是 FTP 操作的强大工具。 基本语法ncftp[选项][主机名]ncftpget[选项]主机名[远程文件][本地文件]ncftpput[选项]主机名[本地文件][远程文件]ncftpls[选项]主机名[远程目录]ncftpbatch[选项][批处理文件]重要特性支持断点续传支持递归目录操作支持书签管理支持命令行补全支持通配符操作支持被动和主动模式 常用选项ncftp 通用选项选项说明-u 用户名指定登录用户名。-p 密码指定登录密码。-P 端口指定 FTP 服务器端口默认 21。-j 账号指定账号某些 FTP 服务器需要。-h显示帮助信息。-v显示版本信息。-d 级别设置调试级别0-10。-t 秒设置超时时间。-r 秒设置重试间隔。-R 次数设置重试次数。-f 文件从文件读取登录信息。-F使用被动模式PASV。-A使用主动模式PORT。-V详细输出模式。-X使用 ASCII 传输模式。-Y使用二进制传输模式。ncftpget 特定选项选项说明-c断点续传如果文件已存在。-C强制断点续传。-T使用临时文件传输。-R递归下载目录。-m使用通配符。-DD下载后删除远程文件。-z远程文件较新时才下载。-Z远程文件较旧或相同时才下载。-f强制覆盖本地文件。-E使用 EPSV 命令扩展被动模式。ncftpput 特定选项选项说明-c断点续传如果文件已存在。-C强制断点续传。-T使用临时文件传输。-R递归上传目录。-m使用通配符。-z本地文件较新时才上传。-Z本地文件较旧或相同时才上传。-f强制覆盖远程文件。-E使用 EPSV 命令扩展被动模式。 核心用法示例1. 交互式 FTP 会话# 连接到 FTP 服务器ncftp ftp.example.com# 使用用户名和密码连接ncftp-uusername-ppassword ftp.example.com# 使用特定端口连接ncftp-P2121ftp.example.com# 使用被动模式连接ncftp-Fftp.example.com# 使用主动模式连接ncftp-Aftp.example.com2. 下载文件ncftpget# 下载单个文件ncftpget ftp.example.com /remote/file.txt /local/path/# 下载文件并指定用户名密码ncftpget-uusername-ppassword ftp.example.com /remote/file.txt /local/path/# 断点续传下载ncftpget-cftp.example.com /remote/largefile.iso /local/path/# 递归下载目录ncftpget-Rftp.example.com /remote/directory/ /local/path/# 使用通配符下载多个文件ncftpget-mftp.example.com /remote/*.txt /local/path/# 下载后删除远程文件ncftpget-DDftp.example.com /remote/file.txt /local/path/# 只下载较新的文件ncftpget-zftp.example.com /remote/file.txt /local/path/3. 上传文件ncftpput# 上传单个文件ncftpput ftp.example.com /remote/path/ /local/file.txt# 上传文件并指定用户名密码ncftpput-uusername-ppassword ftp.example.com /remote/path/ /local/file.txt# 断点续传上传ncftpput-cftp.example.com /remote/path/ /local/largefile.iso# 递归上传目录ncftpput-Rftp.example.com /remote/path/ /local/directory/# 使用通配符上传多个文件ncftpput-mftp.example.com /remote/path/ /local/*.txt# 只上传较新的文件ncftpput-zftp.example.com /remote/path/ /local/file.txt4. 列出文件ncftpls# 列出远程目录ncftpls ftp.example.com /remote/path/# 列出详细信息ncftpls-lftp.example.com /remote/path/# 递归列出目录ncftpls-Rftp.example.com /remote/path/# 列出隐藏文件ncftpls-aftp.example.com /remote/path/# 按时间排序ncftpls-tftp.example.com /remote/path/# 按大小排序ncftpls-Sftp.example.com /remote/path/5. 批处理操作ncftpbatch# 创建批处理文件catftp_batch.txtEOF open ftp.example.com user username password cd /remote/path get file1.txt get file2.txt put localfile.txt quit EOF# 执行批处理ncftpbatch ftp_batch.txt# 使用 ncftpbatch 直接执行命令ncftpbatch-copen ftp.example.com; user username password; ls; quit 交互式命令进入 ncftp 交互模式后可以使用以下命令连接和认证命令说明open 主机名连接到 FTP 服务器。user 用户名 [密码]登录到 FTP 服务器。auth重新认证。close关闭当前连接。quit或exit退出 ncftp。目录操作命令说明pwd显示远程当前目录。lpwd显示本地当前目录。cd 目录切换远程目录。lcd 目录切换本地目录。mkdir 目录创建远程目录。rmdir 目录删除远程目录。chmod 权限 文件更改远程文件权限。文件操作命令说明ls [选项] [目录]列出远程文件。lls [选项] [目录]列出本地文件。get 远程文件 [本地文件]下载文件。put 本地文件 [远程文件]上传文件。mget 模式使用通配符下载多个文件。mput 模式使用通配符上传多个文件。rename 旧名 新名重命名远程文件。delete 文件删除远程文件。rm 文件删除远程文件同 delete。mv 源 目标移动远程文件。cp 源 目标复制远程文件某些服务器支持。传输设置命令说明ascii使用 ASCII 传输模式。binary或image使用二进制传输模式。mode 模式设置传输模式S流B块C压缩。passive切换被动模式。active切换主动模式。type 类型设置传输类型AASCIII二进制。书签管理命令说明bookmark显示书签列表。bookmark add 名称添加当前连接为书签。bookmark delete 名称删除书签。bookmark edit编辑书签文件。bookmark 名称连接到书签。其他命令命令说明help [命令]显示帮助信息。!命令执行本地 shell 命令。set 选项设置选项。show显示当前设置。site 命令发送 SITE 命令到服务器。quote 命令发送原始 FTP 命令。version显示 ncftp 版本。about显示关于信息。 书签功能ncftp 的书签功能可以保存 FTP 连接信息方便快速连接。1. 创建书签# 连接到 FTP 服务器ncftp ftp.example.com# 登录后添加书签bookmarkaddmyserver# 直接创建书签不连接ncftp bookmarkaddmyserver ftp://username:passwordftp.example.com2. 使用书签# 连接到书签ncftp myserver# 在交互模式中使用书签openmyserver3. 管理书签# 列出所有书签bookmark# 编辑书签bookmark edit# 删除书签bookmark delete myserver# 书签文件位置~/.ncftp/bookmarks 断点续传ncftp 支持断点续传对于大文件传输非常有用。# 下载时断点续传ncftpget-cftp.example.com /remote/largefile.iso /local/path/# 上传时断点续传ncftpput-cftp.example.com /remote/path/ /local/largefile.iso# 强制断点续传即使时间戳不同ncftpget-Cftp.example.com /remote/largefile.iso /local/path/ 递归传输ncftp 支持递归传输整个目录结构。# 递归下载目录ncftpget-Rftp.example.com /remote/directory/ /local/path/# 递归上传目录ncftpput-Rftp.example.com /remote/path/ /local/directory/# 递归列出目录ncftpls-Rftp.example.com /remote/path/⚙️ 配置文件ncftp 的配置文件位于~/.ncftp/目录。主要配置文件~/.ncftp/prefs- 用户首选项~/.ncftp/bookmarks- 书签文件~/.ncftp/trace- 跟踪日志~/.ncftp/firewall- 防火墙设置示例配置文件# ~/.ncftp/prefs 示例allow-clobberno confirm-closeyeslogsize0passive-modeyes progress-meter2recursive-listno save-passwordsno show-statusyes xfer-progressyes️ 实用脚本1. 自动备份脚本#!/bin/bash# 自动备份到 FTP 服务器FTP_HOSTftp.example.comFTP_USERusernameFTP_PASSpasswordFTP_DIR/backups/LOCAL_DIR/backup/BACKUP_FILEbackup_$(date%Y%m%d_%H%M%S).tar.gz# 创建本地备份echo创建本地备份...tar-czf$LOCAL_DIR/$BACKUP_FILE/path/to/backup# 上传到 FTPecho上传到 FTP 服务器...ncftpput-u$FTP_USER-p$FTP_PASS-c$FTP_HOST$FTP_DIR$LOCAL_DIR/$BACKUP_FILEif[[$?-eq0]];thenecho备份成功:$BACKUP_FILE# 清理旧备份保留最近7天find$LOCAL_DIR-namebackup_*.tar.gz-mtime7-delete# 清理远程旧备份echo清理远程旧备份...ncftpls-l-u$FTP_USER-p$FTP_PASS$FTP_HOST$FTP_DIR|\grepbackup_|sort-r|tail-n8|awk{print $9}|\whileread-rold_file;doecho删除:$old_filencftp-u$FTP_USER-p$FTP_PASS$FTP_HOSTEOF cd$FTP_DIRdelete$old_filequit EOFdoneelseecho备份失败exit1fi2. 同步目录脚本#!/bin/bash# 同步本地目录到 FTP 服务器FTP_HOSTftp.example.comFTP_USERusernameFTP_PASSpasswordREMOTE_DIR/website/LOCAL_DIR/var/www/html/LOG_FILE/var/log/ftp_sync.logecho 开始同步$(date)$LOG_FILE# 上传新增和修改的文件find$LOCAL_DIR-typef-newer$LOG_FILE2/dev/null|whileread-rfile;dorel_path${file#$LOCAL_DIR}remote_path$REMOTE_DIR${rel_path%/*}echo上传:$rel_path|tee-a$LOG_FILE# 确保远程目录存在ncftp-u$FTP_USER-p$FTP_PASS$FTP_HOSTEOF2/dev/nullmkdir -p$remote_pathquit EOF# 上传文件ncftpput-u$FTP_USER-p$FTP_PASS-z$FTP_HOST$remote_path$fileif[[$?-eq0]];thenecho成功:$rel_path$LOG_FILEelseecho失败:$rel_path$LOG_FILEfidone# 删除本地不存在的远程文件可选echo同步完成$(date)$LOG_FILE3. FTP 监控脚本#!/bin/bash# 监控 FTP 服务器状态FTP_HOSTftp.example.comFTP_USERusernameFTP_PASSpasswordCHECK_FILEhealth_check.txtTIMEOUT30RETRY3check_ftp(){localattempt1while[[$attempt-le$RETRY]];doecho尝试$attempt/$RETRY连接 FTP 服务器...# 测试连接和基本操作ncftp-u$FTP_USER-p$FTP_PASS-t$TIMEOUT$FTP_HOSTEOF2/dev/nullpwd put /dev/null$CHECK_FILEdelete$CHECK_FILEquit EOFif[[$?-eq0]];thenechoFTP 服务器正常return0fisleep5((attempt))doneechoFTP 服务器连接失败return1}# 执行检查ifcheck_ftp;thenecho状态: 正常exit0elseecho状态: 异常# 发送警报echoFTP 服务器$FTP_HOST连接失败|mail-sFTP 服务器警报adminexample.comexit1fi 调试和故障排除1. 启用调试模式# 设置调试级别ncftp-d5ftp.example.com# 在交互模式中启用调试setdebug5# 查看调试信息show debug2. 常见错误解决# 连接超时# 增加超时时间ncftp-t60ftp.example.com# 被动模式问题# 尝试主动模式ncftp-Aftp.example.com# 防火墙问题# 检查防火墙设置sudoiptables-Lsudofirewall-cmd --list-all# 权限问题# 检查文件权限ls-la/path/to/file# 磁盘空间不足# 检查磁盘空间df-h3. 查看传输统计# 在交互模式中查看统计show transfer-status# 查看连接信息show connection# 查看设置show all 最佳实践使用书签对于经常访问的 FTP 服务器使用书签功能。启用断点续传对于大文件传输始终使用-c选项。使用二进制模式对于非文本文件使用二进制模式传输。检查传输完整性传输完成后验证文件大小和 MD5。使用临时文件对于重要文件使用-T选项。定期清理定期清理旧的备份和临时文件。安全考虑避免在命令行中直接输入密码使用配置文件或环境变量。 与其他 FTP 工具对比特性ncftpftplftpcurl断点续传支持不支持支持支持递归传输支持不支持支持支持书签管理支持不支持支持不支持命令行补全支持不支持支持不支持脚本友好中等低高高协议支持FTPFTPFTP/HTTP/SFTP多协议学习曲线简单简单中等简单 快速参考卡基本连接 ncftp ftp.example.com ncftp -u user -p pass ftp.example.com ncftp -P 2121 ftp.example.com 文件传输 ncftpget -c -R ftp.example.com /remote/ /local/ ncftpput -c -R ftp.example.com /remote/ /local/ 交互命令 open, user, close, quit ls, lls, cd, lcd get, put, mget, mput mkdir, rmdir, delete, rename bookmark, help, ! 书签管理 bookmark add name bookmark delete name bookmark open namencftp是一个功能丰富的 FTP 客户端特别适合需要断点续传、递归传输和书签管理的场景。虽然现在 SFTP 和云存储更常用但 FTP 在某些传统环境中仍然广泛使用ncftp是管理 FTP 服务器的优秀工具。

相关文章:

Linux命令-ncftp(增强的的FTP工具)

ncftp 是 Linux 中一个功能强大的 FTP 客户端,提供了比传统 ftp 命令更丰富的功能和更友好的界面。它支持自动登录、断点续传、递归传输、书签管理等功能,是 FTP 操作的强大工具。 📖 基本语法 ncftp [选项] [主机名] ncftpget [选项] 主机名…...

3个技巧让N_m3u8DL-RE流媒体下载更高效

3个技巧让N_m3u8DL-RE流媒体下载更高效 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 还在为喜欢的在线视频无…...

FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透

🧐 第一部分:为什么是PostgreSQL?你可以把PostgreSQL想象成一个“极度守规矩的档案管理员”——数据完整性、ACID、复杂查询支持得滴水不漏。相比MySQL,它对JSON、全文检索、地理空间数据的支持更原生,而且这几年性能优…...

如何通过arknights-ui实现明日方舟界面定制?解锁个性化游戏体验新方式

如何通过arknights-ui实现明日方舟界面定制?解锁个性化游戏体验新方式 【免费下载链接】arknights-ui H5 复刻版明日方舟游戏主界面 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-ui arknights-ui是一个基于H5CSS技术的开源项目,它提供…...

3分钟搞定B站缓存视频永久保存:m4s转MP4终极指南

3分钟搞定B站缓存视频永久保存:m4s转MP4终极指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾因B站视频下架而懊恼&#…...

当英文游戏遇上中文玩家:Degrees of Lewdity本地化之旅

当英文游戏遇上中文玩家:Degrees of Lewdity本地化之旅 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …...

Switch手柄电脑连接全攻略:BetterJoy开源工具使用指南

Switch手柄电脑连接全攻略:BetterJoy开源工具使用指南 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/…...

新手必看:知乎话题数据采集从入门到精通(含代理IP配置与数据清洗技巧)

知乎数据采集实战指南:从零搭建合规爬虫系统 在信息爆炸的时代,知乎作为高质量内容社区,汇聚了大量行业见解和用户真实反馈。对于市场研究人员、产品经理或数据分析师而言,获取这些数据能为决策提供宝贵参考。本文将系统性地介绍如…...

SpringBoot+MinIO上传大文件报错?三步搞定Tomcat文件大小限制

SpringBootMinIO大文件上传报错深度解决方案 1. 问题现象与初步诊断 最近在开发一个基于SpringBoot和MinIO的文件存储系统时,遇到了一个令人困扰的问题:当尝试上传超过1MB的文件时,系统会抛出FileSizeLimitExceededException异常。错误日志明…...

Atlas 800I A2实战:5小时搞定DeepSeek V3 W4A8量化全流程(含显存优化技巧)

Atlas 800I A2实战:5小时搞定DeepSeek V3 W4A8量化全流程(含显存优化技巧) 在AI模型部署领域,量化技术正成为突破硬件限制的关键手段。当我们面对Atlas 800I A2这样的高性能服务器时,如何充分发挥其64GB显存优势&#…...

中文分词避坑指南:Jieba与统计分词法的性能对比与优化技巧

中文分词避坑指南:Jieba与统计分词法的深度对比与实战优化 在自然语言处理领域,中文分词一直是基础却充满挑战的环节。不同于英文等以空格分隔单词的语言,中文文本的连续字符流特性使得准确划分词语边界成为NLP预处理的关键难题。本文将深入剖…...

OpenMMLab 环境配置实战:从 YOLO 项目报错到模块化开发的避坑指南

1. 从YOLO项目报错说起:OpenMMLab环境配置的典型痛点 最近在复现一个基于YOLOv5改进的OpenMMLab项目时,遇到了让人头疼的ModuleNotFoundError: No module named mmdet报错。这个场景太典型了——明明项目目录里清清楚楚躺着mmdet文件夹,Pytho…...

Flutter Web:混合开发的最佳实践

Flutter Web:混合开发的最佳实践一次编写,多端运行。Flutter Web 让前端开发更加高效。一、Flutter Web 的优势 作为一名追求像素级还原的 UI 匠人,我对跨平台解决方案有着严格的要求。Flutter Web 不仅让我们能够使用相同的代码库构建 Andro…...

CSS 变量进阶:动态主题与复杂动画

CSS 变量进阶:动态主题与复杂动画从基础到高级,掌握 CSS 变量的全部潜能。一、CSS 变量的强大之处 作为一名把 CSS 视为流动韵律的 UI 匠人,我深知 CSS 变量的革命性意义。它们不仅让样式代码更易维护,还开启了动态主题、复杂动画…...

2025届毕业生推荐的降重复率方案实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 学术写作以及论文发表进程里,查重之后的降重处置是关键一环,当下市面…...

对接亚马逊 SP-API(Amazon Selling Partner API) 第一章:AWS IAM 配置详解

1. AWS IAM 基础概念扫盲 第一次接触亚马逊SP-API的开发者,往往会在IAM配置环节卡壳。我见过不少团队在这个阶段浪费两三周时间反复调试,其实只要理解几个核心概念就能事半功倍。IAM(Identity and Access Management)就像亚马逊AW…...

Scratch二次开发实战:如何按需“阉割”菜单栏功能?从关闭语言切换、主题到隐藏教程按钮

Scratch教学环境定制指南:精准控制菜单栏功能的艺术 1. 为什么需要定制Scratch界面? 在少儿编程教育领域,Scratch作为全球最受欢迎的图形化编程工具之一,其默认界面设计面向的是广泛年龄段的国际用户。然而在实际教学场景中&#…...

别再乱接光纤了!手把手教你用华为SNS2224交换机配置SAN Zone(附实战命令)

华为SNS2224光纤交换机SAN Zone配置实战指南 第一次接触企业级存储网络的新手,往往会被那些闪烁的光纤端口和复杂的命令行界面吓到。记得我刚入行时,就因为接错了一根光纤线,导致整个存储集群的性能下降了70%,那次事故让我深刻理解…...

【FastAPI】 + SQLAlchemy 异步 ORM 实现完整 CRUD 操作

🚀从零实战:FastAPI SQLAlchemy 异步 ORM 实现完整 CRUD 操作(附完整代码) 一、为什么要学「FastAPI SQLAlchemy 异步 ORM」? 在现代 Web 服务中,数据库是核心组件。然而,传统同步操作&#x…...

最小二乘问题详解15:束平差原理与基础实现

初始两帧的 E 矩阵分解可能存在错误解或尺度模糊;三角化结果受位姿误差和图像噪声影响;PnP 的位姿估计会继承并放大前期误差。 随着图像数量增加,这些局部误差会不断累积,导致最终重建结果出现尺度漂移、结构扭曲甚至拓扑错误。要…...

记录生活中的一件小事(佚名整理)

(转发需官方授权)记录生活中的一件小事(佚名整理)(佚名整理)记录生活中的一件小事,如果喊错了那才是麻烦事情的开始:曾经有一个人家里有两个姐姐,这个人上高中的时候和两…...

olonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)

关于 SolonCode(编程智能体)SolonCode 是由杭州无耳科技有限公司,基于 Java 8 Solon AI 开发的 “Claude Code” 国产开源实现版本。它不仅是一个 AI 终端智能助手(帮你查资料、写报告、发邮件,生成图片、视频&#x…...

别再乱用get()了!Python字典setdefault()的3个进阶技巧(含性能对比)

别再乱用get()了!Python字典setdefault()的3个进阶技巧(含性能对比) 字典操作是Python开发中最频繁的基础动作之一,但很多中高级开发者依然停留在get()方法的舒适区。本文将带你突破常规用法,探索setdefault()在真实项…...

新手怎么部署OpenClaw?2026年本地1分钟超速搭建OpenClaw及大模型百炼APIKey配置

新手怎么部署OpenClaw?2026年本地1分钟超速搭建OpenClaw及大模型百炼APIKey配置。OpenClaw(原Clawdbot)作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉,让AI…...

新手怎么安装OpenClaw?2026年新手10分钟部署OpenClaw及百炼APIKey配置指南

新手怎么安装OpenClaw?2026年新手10分钟部署OpenClaw及百炼APIKey配置指南。OpenClaw(原Clawdbot)作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉,让AI在企业…...

从引脚定义到PCB布线:硬件工程师的SATA接口设计避坑指南(附信号完整性实测)

从引脚定义到PCB布线:硬件工程师的SATA接口设计避坑指南(附信号完整性实测) 在当今数据驱动的硬件设计中,SATA接口依然是存储设备连接的中坚力量。作为一名经历过无数次深夜调试的硬件工程师,我深知一个看似简单的SATA…...

Linux依赖冲突实战:deepin-wine疑难杂症排查指南

1. 当deepin-wine遇上依赖地狱:报错现场还原 第一次在Ubuntu上安装deepin-wine时,那个满屏飘红的依赖错误让我至今记忆犹新。终端里不断刷新的"但是它将不会被安装"提示,像极了游戏里的连环陷阱。这类问题通常发生在混合安装32位/6…...

AGX Orin 部署PyTorch生态:从JetPack适配到torchvision编译避坑指南

1. AGX Orin开发环境初始化 刚拿到AGX Orin开发套件时,很多开发者会直接开始安装PyTorch,但往往忽略了基础环境配置的重要性。我去年在部署一个工业质检项目时就踩过这个坑——当时为了赶进度跳过了JetPack版本检查,结果导致后续torchvision编…...

为什么芯片工程师都在学Chisel?从Verilog到高级硬件设计的跃迁指南

为什么芯片工程师都在学Chisel?从Verilog到高级硬件设计的跃迁指南 在半导体行业,设计效率正成为决定产品成败的关键因素。传统Verilog开发中,工程师们常常需要花费70%的时间调试RTL代码中的低级错误,而非专注于架构创新。这种现状…...

ESP32自动登录校园网实战:绕过网页认证,实现设备永久在线(附完整Arduino代码)

ESP32校园网自动登录全攻略:从逆向分析到模块化封装 校园网环境下的IoT设备部署常面临一个棘手问题——每次断电重启后都需要手动登录网页认证系统。想象一下凌晨三点实验室的温湿度监测系统突然掉线,而你不得不顶着寒风跑去教学楼重新登录的场景。本文将…...