温馨提示×

ubuntu如何实现快速分卷

小樊
38
2025-12-14 06:06:18
栏目: 智能运维

Ubuntu快速分卷的常用做法

一、概念澄清

  • 文件级分卷:将一个大文件或目录打包并切割成若干固定大小的小文件,便于传输与分发(如 .tar.gz.00、.tar.gz.01….rar/.7z 分卷)。
  • 磁盘级分区:对硬盘进行分区、调整大小、格式化等(如 GParted、parted、fdisk)。若你的目标是“把磁盘分成多个区”,请看文末的“磁盘分区工具”部分。

二、文件级分卷的推荐方法

  • 方法A 一条命令打包并分卷(最快、最通用)

    • 使用 tar + gzip + split,边打包边切割,适合任意目录/文件:
      • 示例(每卷 1G,输出命名 backup.tar.gz.00、backup.tar.gz.01…):
        tar -czf - ./mydir | split -a 2 -d -b 1G - backup.tar.gz.
        
      • 还原:
        cat backup.tar.gz.* | tar -xzf -
        
      • 说明:
        • -a 2 指定后缀长度为2(00、01…),-d 使用数字后缀;可改为 -b 500M 等大小。
        • 若更追求压缩率,可将 -z(gzip)改为 -j(bzip2,更慢但更小)。
  • 方法B 先压缩再分卷(大目录更快)

    • 先整体压缩,再切割,可减少多次压缩管道带来的开销:
      # 1) 先压缩
      tar -cjf mydir.tar.bz2 ./mydir
      
      # 2) 再按 500M 切割
      split -a 2 -d -b 500M mydir.tar.bz2 mydir.tar.bz2.
      
      • 还原:
        cat mydir.tar.bz2.* | tar -xjf -
        
      • 实测思路:对约 90G 目录先压成 ~30G.tar.bz2,再分卷,整体更省时。
  • 方法C 使用 RAR 或 7z(便于跨平台)

    • RAR(需安装:sudo apt-get install rar unrar):
      # 分卷,每卷 50000k
      rar a -v50000k archive.rar ./mydir
      
      # 任一分卷均可解压(如 part1)
      unrar x archive.part1.rar
      
    • 7z(需安装:sudo apt-get install p7zip-full):
      # 分卷,每卷 80M
      7z a archive.7z ./mydir -v80m
      
      # 解压(从 .001 开始)
      7z x archive.7z.001
      
    • 提示:跨平台分享时,RAR/7z 更通用;在 Linux 内部分发,tar+split 更轻量。

三、常见坑与优化建议

  • 校验完整性:分卷传输后,先合并再解压,若报错(如 gzip 的 “stdin invalid”),通常是某个分卷损坏或拷贝不完整,重新传输该分卷即可。
  • 保留权限与属性:
    • 使用 tar 管道可保留权限/链接等;若用 7z 单独压缩,默认可能丢失部分属性,可用“tar 管道”方式弥补:
      # 打包并分卷,保留属性
      tar cf - ./mydir | 7z a -si mydir.tar.7z -v80m
      
      # 还原
      7z x -so mydir.tar.7z.001 | tar xf -
      
  • 命名与顺序:
    • 使用 split -d -a N 生成固定宽度数字后缀,便于按序合并(cat 或 7z 会自动按字典序处理)。
  • 速度取舍:
    • 追求速度:用 gzip(-z);追求体积:用 bzip2(-j)7z(-m0=lzma2),但压缩更慢。

四、如果你指的是磁盘分区

  • 图形工具:GParted(适合新手,支持调整大小/创建/删除分区,支持多种文件系统)。
  • 命令行:parted / fdisk / gdisk(适合进阶用户,支持 MBR/GPT 等分区表操作)。
  • 提示:分区/扩容有数据风险,务必先备份,并在操作前确认设备名(如 /dev/sda)。

0