通过终端在 CentOS 中将大文件拆分为带有 .001 .002(等等)扩展名的文件

通过终端在 CentOS 中将大文件拆分为带有 .001 .002(等等)扩展名的文件

如何在 CentOS 中通过 SSH 终端(使用 Putty)将大文件拆分为扩展名为 .001 .002(等等)的部分?

例如,如果我有一个大文件-大文件.iso那么我怎样才能将它拆分成如下文件大文件.iso.001大文件.iso.002大文件.iso.003大文件.iso.004.... 等等直到大文件.iso.xxx(在哪里xxx是最后一部分?

答案1

Split 是您的好朋友,有以下选择:

-d --numeric-suffix  for numerical suffixes
-a -- suffix-lenght  for suffix lenght

看一下

split --help

在终端

答案2

最好的方法可能是使用类似下面的简短 bash 脚本

#!/bin/bash

BS=1024
SEGMENT=100000

LEN=$(ls -l | awk '{ print $5; }')
BL=$(($LEN/$BS))
S=0
I=1
while test "$BL" -le "$S"; do
  dd if="$1" of="$1."$(printf '%03d' $I) bs="$BS" skip="$S" count="$SEGMENT" 2>/dev/null
  S=$(($s+$SEGMENT))
  I=$(($I+1))
done

相关内容