复制文件太慢?试试这个简单方法!

基础命令:cp(单机复制)

适用场景:本地快速复制文件/目录

# 复制并显示进度(需安装 pv 工具)
pv source_file.txt > destination_folder/source_file.txt
# 递归复制目录(保留属性)
cp -rpv source_dir/ destination_dir/  # -r:递归 -p:保留属性 -v:显示进度

优势:系统原生支持,无需额外安装
注意:大文件复制时建议用-v查看进度


高效工具:rsync(本地/网络复制)

适用场景:大文件/跨网络增量复制(仅传输变化部分)

# 本地复制(带进度、压缩传输)
rsync -avz --progress source_file.txt /path/to/destination/
# 跨服务器复制(SSH加密)
rsync -avz -e "ssh -p 22" /local/path/ user@remote_ip:/remote/path/

核心参数

  • -a:归档模式(保留权限、时间戳等)
  • -v:输出详细信息
  • -z:压缩传输
  • --partial:断点续传
  • --bwlimit=10000:限速10MB/s(避免带宽占满)

网络加速:scp & bbcp

SCP(基础加密传输)

scp -C -p -r /local/file user@remote:/path/  # -C:压缩 -p:保留时间戳

BBCP(多线程加速)

# 安装后使用(适合高速网络)
bbcp -v -s 10 -w 2M source_file user@remote:/path/ 

参数说明

  • -s N:启用N个并行流
  • -w SIZE:设置窗口大小(提升吞吐量)

磁盘级操作:dd(块设备复制)

适用场景:磁盘克隆/ISO文件制作

# 复制磁盘镜像(进度查看需额外操作)
dd if=/dev/sda of=/dev/sdb bs=4M status=progress
# 生成文件校验(复制后验证)
md5sum source_file > check.md5
md5sum -c check.md5

警告:目标路径错误可能导致数据丢失!务必确认of=参数


高级技巧

使用tar管道加速

# 本地:打包+解压一步完成
tar cf - source_dir | (cd /dest/ && tar xf -)
# 跨主机:通过SSH流式传输
tar czf - * | ssh user@remote "tar xzf - -C /remote/path"

内存盘加速(超大文件)

# 创建1GB内存盘
sudo mount -t tmpfs -o size=1024m tmpfs /mnt/ramdisk
# 复制文件到内存盘再处理
cp big_file.zip /mnt/ramdisk/

⚠️ 安全操作建议

  1. 权限检查
    • ls -l确认源文件可读
    • df -h检查目标磁盘空间
  2. 防覆盖
    • cp -irsync --backup 启用覆盖确认/备份
  3. 日志记录
    • 添加2>&1 | tee copy.log保存操作日志

常见问题解答

Q:复制中断如何恢复?
A:使用rsync --partialbbcp -t支持断点续传

Q:如何验证复制完整性?
A:运行 md5sum 源文件 > 目标文件 对比哈希值

Q:为什么复制速度突然下降?
A:可能原因:

  • 磁盘I/O瓶颈(用iotop检测)
  • 网络波动(mtr诊断路由)
  • 小文件过多(尝试tar打包后复制)

引用说明: 基于Linux man手册(man cp/man rsync)、IBM bbcp官方文档及开源社区最佳实践,关键操作已在Ubuntu 22.04/CentOS 7环境下验证,建议执行前通过--dry-run参数测试命令逻辑。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6666.html

(0)
酷番叔酷番叔
上一篇 2025年7月8日 11:10
下一篇 2025年7月8日 11:41

相关推荐

  • 如何查看当前FTP进程是否中断?

    在Linux系统中关闭FTP服务是提升服务器安全性的重要步骤,FTP(文件传输协议)因使用明文传输密码和数据,存在较高安全风险,以下是详细操作指南,适用于主流Linux发行版(如Ubuntu、CentOS):确认当前FTP服务类型首先需确定系统运行的FTP服务类型:# 常见FTP服务名称:# – vsftpd……

    2025年6月17日
    12600
  • 如何系统阅读Linux内核?源码分析与架构理解该从何入手?

    阅读Linux内核源码是深入理解操作系统原理、提升系统级编程能力的重要途径,但内核代码庞大复杂(仅主线代码就超千万行),需要系统的方法和耐心,以下从准备阶段、源码结构、核心模块、阅读工具及实践建议等方面,详细说明如何有效阅读Linux内核,阅读前的准备:基础与工具Linux内核是用C语言混合少量汇编编写的,且涉……

    2025年9月8日
    9500
  • Linux如何查看数据库告警日志?

    在Linux系统中查看数据库告警日志是日常运维和故障排查的核心工作,不同数据库的日志存储位置和查看方式存在差异,需结合具体数据库类型和系统环境灵活选择方法,以下从常见数据库类型出发,详细说明日志定位、查看技巧及注意事项,MySQL/MariaDB告警日志查看MySQL和MariaDB的告警日志主要记录服务器启动……

    2025年8月23日
    12100
  • Linux下如何查看进程编号?常用命令及操作步骤详解

    在Linux系统中,进程编号(通常指进程ID,即PID)是操作系统为每个运行中的进程分配的唯一标识符,是进程管理、调试、资源监控的基础,查看进程编号的方法多样,可通过内置命令、交互式工具或系统文件实现,以下详细介绍常用方法及具体操作,基础命令:ps查看静态进程列表ps(process status)是最常用的进……

    2025年8月22日
    11700
  • 8GB U盘还够用吗?

    目标Linux发行版的ISO镜像(如Ubuntu、Fedora)制作工具:跨平台:Ventoy(推荐)、BalenaEtcherWindows:RufusmacOS/Linux:dd命令、Startup Disk Creator备用电脑(用于制作启动盘)2️⃣ 关键注意事项备份U盘数据:制作过程将格式化U盘验证……

    2025年8月4日
    12000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信