导读:本期聚焦于小伙伴创作的《Linux sftp命令完全使用指南:连接、传输与管理文件实用教程》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux sftp命令完全使用指南:连接、传输与管理文件实用教程》有用,将其分享出去将是对创作者最好的鼓励。

Linux sftp命令用法总结

sftp是Secure File Transfer Protocol的缩写,是基于SSH协议的安全文件传输工具,相比传统的ftp,它在传输过程中对所有数据进行了加密,避免了明文传输带来的安全风险。sftp命令可以在本地主机和远程服务器之间安全地传输文件、管理目录,是Linux系统运维中常用的文件操作工具之一。

sftp连接远程服务器

使用sftp连接远程服务器的基本语法如下:

sftp [选项] [用户名@]远程主机地址[:端口]

最常用的连接方式是指定用户名和远程主机IP或域名,示例如下:

# 连接远程服务器,默认使用当前本地用户名,端口为22
sftp 192.168.0.100

# 指定用户名连接远程服务器
sftp user@192.168.0.100

# 指定端口连接(如果远程服务器SSH端口不是默认的22)
sftp -P 2222 user@192.168.0.100

连接成功后会进入sftp交互模式,终端提示符会变为sftp>,此时可以输入sftp相关命令操作文件。

sftp常用交互命令

本地和远程路径切换

sftp交互模式下可以分别切换本地和远程的工作目录,相关命令如下:

  • pwd:查看远程服务器当前工作目录

  • lpwd:查看本地当前工作目录

  • cd 目录路径:切换远程服务器的工作目录

  • lcd 目录路径:切换本地的工作目录

示例如下:

# 查看远程当前目录
sftp> pwd
Remote working directory: /home/user

# 切换到远程的/tmp目录
sftp> cd /tmp

# 查看本地当前目录
sftp> lpwd
Local working directory: /home/local_user/documents

# 切换到本地的~/downloads目录
sftp> lcd ~/downloads

文件传输操作

文件传输是sftp的核心功能,支持从远程下载文件到本地,以及从本地上传文件到远程服务器。

下载文件(远程到本地)

  • get 远程文件路径:下载单个文件到本地当前目录,文件名保持不变

  • get 远程文件路径 本地文件路径:下载远程文件到指定的本地路径,可重命名文件

  • mget 远程文件1 远程文件2 ...:批量下载多个远程文件到本地当前目录

示例如下:

# 下载远程的test.txt到本地当前目录
sftp> get test.txt

# 下载远程的data.log到本地并重命名为data_backup.log
sftp> get data.log /home/local_user/backup/data_backup.log

# 批量下载远程目录下所有.txt文件
sftp> mget *.txt

上传文件(本地到远程)

  • put 本地文件路径:上传单个本地文件到远程当前目录,文件名保持不变

  • put 本地文件路径 远程文件路径:上传本地文件到指定的远程路径,可重命名文件

  • mput 本地文件1 本地文件2 ...:批量上传多个本地文件到远程当前目录

示例如下:

# 上传本地的config.ini到远程当前目录
sftp> put config.ini

# 上传本地的image.png到远程的/var/www/images目录并重命名为logo.png
sftp> put image.png /var/www/images/logo.png

# 批量上传本地所有.jpg文件到远程当前目录
sftp> mput *.jpg

目录和文件管理

sftp交互模式下也支持对远程和本地的目录、文件进行基础管理操作:

  • ls:列出远程当前目录下的文件和子目录

  • lls:列出本地当前目录下的文件和子目录

  • mkdir 目录名:在远程服务器创建新目录

  • lmkdir 目录名:在本地创建新目录

  • rm 文件名:删除远程服务器上的文件

  • rmdir 目录名:删除远程服务器上的空目录

  • rename 旧文件名 新文件名:重命名远程服务器上的文件

示例如下:

# 列出远程当前目录内容
sftp> ls

# 在远程创建test_dir目录
sftp> mkdir test_dir

# 删除远程的old.log文件
sftp> rm old.log

# 重命名远程的file1.txt为file_new.txt
sftp> rename file1.txt file_new.txt

其他常用命令

  • help?:查看sftp支持的所有交互命令及说明

  • exitbyequit:退出sftp交互模式,断开连接

  • version:查看当前sftp客户端的版本信息

  • df -h:查看远程服务器的磁盘空间使用情况

非交互模式使用sftp

除了进入交互模式操作,sftp也支持在命令行直接执行单个操作,适用于脚本自动化场景,语法如下:

sftp [选项] [用户名@]远程主机地址[:端口] 命令

示例如下:

# 非交互模式下下载远程文件到本地
sftp user@192.168.0.100 "get /home/user/report.pdf /tmp/"

# 非交互模式下上传本地文件到远程
sftp user@192.168.0.100 "put /tmp/local_data.txt /home/user/"

sftp与scp的区别

sftp和scp都是基于SSH的安全文件传输工具,二者的主要区别如下:

对比项sftpscp
工作模式交互式,支持会话内多次操作非交互式,单次命令完成传输
功能丰富度支持文件管理、目录操作、断点续传等仅支持基础的文件上传下载
适用场景需要多次文件操作、目录管理的场景单次快速传输文件的场景

注意事项

  • 使用sftp连接远程服务器时,需要确保远程服务器的SSH服务正常运行,且对应的端口(默认22)开放

  • 如果远程服务器修改了SSH默认端口,连接时需要用-P指定端口,注意是大写P,和scp的小写p区分

  • sftp传输大文件时如果连接中断,部分新版本sftp支持断点续传,可通过reget(下载断点续传)和reput(上传断点续传)命令实现

  • 操作远程文件时需要注意权限问题,避免删除重要文件或操作权限不足的文件

提示:如果需要了解sftp更多的参数和用法,可以通过man sftp命令查看完整的手册文档。

sftp命令 文件传输 远程连接 Linux运维 文件管理

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。