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

本文介绍如何在Linux环境下,利用tar、bzip2和split命令将大文件或目录压缩并分割成指定大小的多个文件。适用于移动存储设备上的数据备份。文章详细解释了命令参数及其工作原理。

将大文件或目录打包、压缩 分割 成制定大小的文件,这在将数据备份 到容量有限的移动储存设备时是必须的,在 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 命令 " 来查阅他们的手册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值