`
famoushz
  • 浏览: 2874684 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux下如何将文件打包、压缩并分割成制定大小?

阅读更多

将大文件或目录打包、压缩 分割 成制定大小的文件,这在将数据备份 到容量有限的移动储存设备时是必须的,在 Linux 下可以通过组合使用 tar,bzip2( 或者 gzip),split 命令来实现。

假设要将下面这个文件压缩并分割成多个 1.4M 的文件
-r-xr-xr-x 1 root root 4.4M 2004-08-27 01:50 a.chm
可以用下面的命令 :
tar -jcf - a.chm | split -b 1400k - a.chm.tar.bz2.
完成后会生产下面的文件 :
-rw-r--r-- 1 root root 1433600 2004-08-27 01:55 a.chm.tar.bz2.aa
-rw-r--r-- 1 root root 1433600 2004-08-27 01:56 a.chm.tar.bz2.ab
-rw-r--r-- 1 root root 1433600 2004-08-27 01:56 a.chm.tar.bz2.ac
-rw-r--r-- 1 root root 225280 2004-08-27 01:56 a.chm.tar.bz2.ad


还原文件用下面的命令 :
cat a.chm.tar.bz2.a* | tar -jx

为了让广大菜鸟了解上面的命令,现解释如下:
压缩命令 "tar -jcf -" 中的 “-jcf" 参数是创建 (c) 文件 (f) 并调用 bzip2 进行压缩 (j) ,跟在 f 后面的 " -" 是将所创建的文件输出到标准输出上,在这里就是通过 "|" 管道输出给 split 命令进行文件分割;分割命令 "split -b 1400k - a.chm.tar.bz2." 中的 "-b 1400k" 是用来设置每个文件大小的,除了 "k" ,还可以用 "m" 来作为单位,接着的 " - " 就是将 "tar" 命令通过管道传入的数据作为需要分割的数据来源,后面跟着的 " a.chm.tar.bz2." 就是文件名了。
这两个命令如果独立使用,可以将参数中独立的 " - " 换为具体的文件名,这样 "tar" 命令就可以将文件打包压缩成指定的文件,而 "split" 命令就可以分割指定的文件。
"tar" 命令中,大家也可以用 "z" 代替 "j" 参,这样 tar 就会调用 gzip 进行压缩,而不是 bzip2 ,当然,如果你用了 "z" 参数,记得将输出的文件名中的 "bz2" 改为 "gz" ,这样在解压的时候就可以分辨出需要用那个参数进行解压。
split 命令生产的文件序列除了字母还可以使用 " -d " 参数指定为数字的形式,同时还可以通过 " -a x" 来设定序列的长度 ( 默认值是 2) ,例如命令:
split -b 1400k -d -a 1 - a.chm.tar.bz2.
就可以产生如下命名规则的文件:
-rw-r--r-- 1 root root 1.4M 2004-08-28 01:01 a.chm.tar.bz2.0
-rw-r--r-- 1 root root 1.4M 2004-08-28 01:02 a.chm.tar.bz2.1
-rw-r--r-- 1 root root 1.4M 2004-08-28 01:02 a.chm.tar.bz2.2
-rw-r--r-- 1 root root 220K 2004-08-28 01:02 a.chm.tar.bz2.3

如果大家想更全面地了解这些命令,可以通过 "man 命令 " 来查阅他们的手册。

分享到:
评论

相关推荐

    WPS2009最新版提供下载

    要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令: tar cjf - logs/ |split -b 1m - logs.tar.bz2. 完成后会产生下列文件: -rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa -rw-r--r-...

    WPS2009最新版提供下载2

    要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令: tar cjf - logs/ |split -b 1m - logs.tar.bz2. 完成后会产生下列文件: -rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa -rw-r--r-...

    Linux指令一周通 (技术图书大系).azw3

    1.69 tar指令:打包同时压缩/解压缩文件 1.70 tee 指令:从标准输入读取数据到标准输出,同时保存为文件 1.71 tftp指令:传输文件 1.72 tmpwatch指令:删除临时文件 1.73 touch指令:更改文件/目录时间 1.74 umask...

    Linux使用教程(教程)

    ※3.tar (打包文件或目录) 40 ※12.设备挂载mount 40 ※1.制作ISO文件 40 ※2.挂接移动硬盘 41 ※3.挂接U盘 42 五、文件安全与权限 42 ※1.文件安全策略 42 ※2.文件权限位 42 ※3.文件类型 43 ※4.改变权限chmod ...

    tar:用C语言实现的简单tar实现

    它可以压缩文件并解压缩它们。 就是这样。 尽管还编写了其他一些实用程序函数,但是它们是GNU Tar提供的很小的子集。 一切都是基于Wikipedia和GNU Tar的观察结果编写的。 由于使用了大量的POSIX头文件,因此这仅...

    vc++ 应用源码包_1

    其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,打包成自己的产品,...

    vc++ 应用源码包_2

    其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,打包成自己的产品,...

    vc++ 应用源码包_6

    其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,打包成自己的产品,...

    vc++ 应用源码包_5

    其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,打包成自己的产品,...

    vc++ 应用源码包_3

    其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,打包成自己的产品,...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    全书压缩打包成2部分,这是第1部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    全书压缩打包成2部分,这是第2部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为...

Global site tag (gtag.js) - Google Analytics