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

linux 文件传输命令

在 Linux 系统中,有多种命令可用于文件传输,适用于不同场景(本地传输、网络传输、不同协议等)。以下是常用的文件传输命令:

1. 本地文件传输命令

cp - 复制文件 / 目录

最基础的本地文件复制命令
bash
 
 
# 复制文件
cp 源文件 目标路径# 复制目录(递归)
cp -r 源目录 目标路径# 示例:复制 file.txt 到 /tmp 目录
cp file.txt /tmp/# 示例:复制 dir1 及其内容到 dir2
cp -r dir1 dir2/
 

mv - 移动 / 重命名文件

可用于本地移动文件,也可重命名
bash
 
 
# 移动文件
mv 源文件 目标路径# 重命名文件
mv 旧文件名 新文件名# 示例:将 file.txt 移动到 /home/user 目录
mv file.txt /home/user/# 示例:重命名 file.txt 为 newfile.txt
mv file.txt newfile.txt
 

2. 网络文件传输命令(基于 SSH)

scp - 安全复制(SSH 协议)

通过 SSH 加密传输文件,支持本地与远程、远程与远程之间的传输
bash
 
 
# 本地 → 远程
scp 本地文件 用户名@远程IP:远程路径# 远程 → 本地
scp 用户名@远程IP:远程文件 本地路径# 传输目录(-r 递归)
scp -r 本地目录 用户名@远程IP:远程路径# 指定端口(-P,大写)
scp -P 2222 file.txt user@192.168.1.1:/tmp/
 
(详细用法可参考之前的 scp 说明)

sftp - 安全文件传输协议(SSH 协议)

交互式的文件传输工具,类似 FTP 但基于 SSH 加密
bash
 
 
# 连接远程主机
sftp 用户名@远程IP# 常用交互命令
get 远程文件  # 下载远程文件到本地
put 本地文件  # 上传本地文件到远程
ls            # 列出远程目录
cd            # 切换远程目录
lls           # 列出本地目录
lcd           # 切换本地目录
quit/exit     # 退出
 

3. 其他网络传输命令

rsync - 高效同步工具

适用于备份和镜像,仅传输差异内容,速度快
bash
 
 
# 本地同步目录
rsync -av 源目录 目标目录# 远程同步(本地 → 远程)
rsync -av 本地目录 用户名@远程IP:远程路径# 远程同步(远程 → 本地)
rsync -av 用户名@远程IP:远程目录 本地路径# 选项说明:
# -a:归档模式(递归+保留权限等)
# -v:显示详细信息
# -z:传输时压缩
# --delete:删除目标中源没有的文件(保持完全一致)
 

wget - 下载网络文件

通过 HTTP、HTTPS、FTP 等协议下载文件
bash
 
 
# 下载文件到当前目录
wget https://example.com/file.zip# 指定保存文件名
wget -O newname.zip https://example.com/file.zip# 后台下载
wget -b https://example.com/largefile.iso# 断点续传
wget -c https://example.com/largefile.iso
 

curl - 多功能传输工具

支持多种协议,可下载或上传文件
bash
 
 
# 下载文件(类似 wget)
curl -O https://example.com/file.txt  # 保存为原文件名
curl -o newfile.txt https://example.com/file.txt  # 指定文件名# 上传文件(FTP 示例)
curl -T localfile.txt ftp://ftp.example.com/ -u 用户名:密码
 

ftp - 文件传输协议(非加密)

传统的 FTP 工具,不加密,安全性较低,建议优先使用 sftp
bash
 
 
# 连接 FTP 服务器
ftp ftp.example.com# 登录后常用命令
get 远程文件  # 下载
put 本地文件  # 上传
ls、cd、quit  # 类似 sftp
 

总结

  • 本地传输:优先用 cpmv
  • 远程安全传输:首选 scp(简单传输)、sftp(交互式)、rsync(高效同步)
  • 下载网络文件:wget 或 curl
  • 注意:涉及远程传输时,需确保目标主机开启相应服务(如 SSH 服务用于 scp/sftp)。
 
rsync 详解
rsync 是一款高效的文件同步工具,全称为 "remote sync"。它最核心的特点是增量传输—— 只传输源和目标之间的差异部分,而不是完整复制所有内容,这使得它在备份、镜像和大文件传输场景中非常高效。

基本原理

rsync 通过对比源和目标文件的校验和(checksum)来识别差异,只传输变化的部分,大幅节省带宽和时间。它支持本地同步和跨网络同步(基于 SSH 或 rsync daemon)。

基本语法

bash
 
 
rsync [选项] 源路径 目标路径
 
  • 源路径 / 目标路径可以是:
    • 本地路径(如 /home/user/file 或 ./dir
    • 远程路径(如 user@remotehost:/path

常用选项(核心参数)

1. 模式与递归

  • -r:递归同步目录(但不保留文件属性)
  • -a:归档模式(最常用),等价于 -rlptgoD,表示:
    • -r 递归
    • -l 保留符号链接
    • -p 保留权限
    • -t 保留修改时间
    • -g 保留组信息
    • -o 保留所有者信息
    • -D 保留设备文件和特殊文件

2. 压缩与显示

  • -v:显示详细输出(verbose)
  • -z:传输时压缩数据(节省带宽,适合网络传输)
  • -h:以人类可读的格式显示大小(如 K、M、G)

3. 删除与镜像

  • --delete:删除目标路径中源路径没有的文件(使目标与源完全一致)
  • --delete-excluded:删除被排除的文件

4. 排除与包含

  • --exclude=PATTERN:排除匹配模式的文件 / 目录
  • --include=PATTERN:包含匹配模式的文件 / 目录(优先级高于 exclude)

5. 其他实用选项

  • -n:模拟运行(dry run),只显示会执行的操作,不实际同步
  • -P:等价于 --partial --progress,保留部分传输的文件并显示进度
  • -e "ssh -p 端口":指定 SSH 端口(用于远程同步)

典型使用场景

1. 本地目录同步

bash
 
 
# 将 dir1 同步到 dir2(保持结构和属性)
rsync -av /path/to/dir1 /path/to/dir2# 同步时删除 dir2 中 dir1 没有的文件(完全镜像)
rsync -av --delete /path/to/dir1 /path/to/dir2
 

2. 本地 → 远程同步(基于 SSH)

bash
 
 
# 将本地目录同步到远程服务器
rsync -avz /local/path user@remotehost:/remote/path# 指定 SSH 端口(如 2222)
rsync -avz -e "ssh -p 2222" /local/path user@remotehost:/remote/path
 

3. 远程 → 本地同步(基于 SSH)

bash
 
 
# 将远程目录同步到本地
rsync -avz user@remotehost:/remote/path /local/path
 

4. 排除特定文件 / 目录

bash
 
 
# 同步时排除 .log 文件和 tmp 目录
rsync -av --exclude="*.log" --exclude="tmp/" /source /dest
 

5. 断点续传大文件

bash
 
 
# 传输大文件时保留部分传输的文件并显示进度
rsync -avP large_file.iso user@remotehost:/backup/
 

6. 模拟运行(测试命令效果)

bash
 
 
# 查看同步会执行哪些操作,不实际修改文件
rsync -avn --delete /source /dest
 

与其他工具的对比

  • vs scprsync 只传差异部分,更适合重复同步;scp 每次都是全量复制,适合单次传输。
  • vs cprsync 支持增量同步、远程传输和更精细的控制;cp 仅用于本地全量复制。

注意事项

  1. 路径末尾的 / 影响同步行为:
    • rsync -av /source/dir /dest:会在 dest 下创建 dir 并同步内容
    • rsync -av /source/dir/ /dest:直接将 dir 内的内容同步到 dest 中
  2. 权限问题:远程同步时确保对源有读权限,对目标有写权限
  3. --delete 选项慎用,可能会误删重要文件(建议先用 -n 测试)
通过灵活组合选项,rsync 可以满足从简单文件复制到复杂系统备份的各种需求,是 Linux 系统中不可或缺的工具之一。
http://www.hskmm.com/?act=detail&tid=13539

相关文章:

  • 新手也能轻松上手!midas Gen 2019 安装详细图解
  • Redis AOF原理
  • 001_string操作
  • hbase 面试题
  • ANSYS Electronics 2025 R1 安装与使用全流程图文教程
  • mall项目学习笔记
  • 实用指南:通义DeepResearch论文六连发全面解读
  • glTF/glb:现在和未来
  • 存储多边形网格的文件格式:OBJ、FBX、RenderMan、glTF、USD 等。
  • 安防监控中常见的报警类型有哪些?国标GB28181平台EasyGBS的报警能力解析
  • Notepad++8.6免费版下载及安装教程(附安装包)2025最新整理
  • VTable-Sheet:重新定义Web电子表格的开源解决方案
  • Coolmuster Android Assistant:Windows架构下的Android设备管理专家
  • 负载均衡+Tomcat集群+MySQL主从 实验
  • mysql表新增字段,基本语法
  • 2025年运营商数据分类分级最佳实践、案例与方案
  • 微波雷达模块WT4101重新定义饮水机茶吧机等智能家居
  • 硝基甲苯之魇
  • day14-Trae之一键换脸APP开发04
  • Linux服务器单网卡如何配置多个的IP地址?
  • 面试常问问题——索引是不是越多越好
  • day38大模型程序开发-GraphRAG实操
  • 关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~
  • day13-Trae之一键换脸APP开发03
  • python第一天
  • 摩尔投票法
  • 基于STM32平台的ADS1292心电采集驱动程序
  • ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池
  • 深入解析MS12-020关键漏洞CVE-2012-0002:远程桌面协议的安全风险与缓解方案
  • 鸿蒙项目实战(九):get请求参数的处理