Linux系统下使用split命令分割大文件

我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片“邮递”过去给他,让它自己组装起来吧。
 
[root@pps public_rw]# ls -lh RevolutionOS.rmvb
-rwx------ 1 hoho hoho 276M 2005-09-09 RevolutionOS.rmvb
 
将将这个276M文件分割成20M的小文件,文件分割操作如下:
 
用法:split [选项] [输入 [前缀]]
 
[root@pps public_rw]# split -b 20m RevolutionOS.rmvb RevOS_part_
[root@pps public_rw]# ls -lh
总计 552M
-rwx------ 1 hoho hoho 276M 2005-09-09 RevolutionOS.rmvb
-rw-r--r-- 1 root root  20M 03-19 17:59 RevOS_part_aa
-rw-r--r-- 1 root root  20M 03-19 17:59 RevOS_part_ab
...
-rw-r--r-- 1 root root  20M 03-19 18:00 RevOS_part_am
-rw-r--r-- 1 root root  16M 03-19 18:00 RevOS_part_an
 
“-b 20m”指定分割文件的大小为20M,文件后面的“RevOS_part_”是分割文件的前缀,最后的是16M的“剩余”文件。
 
组装文件:


[root@pps public_rw] cat RevOS_part_* > RevolutionOS_RSB.rmvb
 
这里不怕组装顺序错误,因为分割的时候是按字母顺序排下来的,cat也是按照字母顺序处理的,如果不放心,将组装后的文件哈希对比一下:
 
[root@pps public_rw]# md5sum RevolutionOS.rmvb
ac7cce07f621b1ed6f692e6df0ac8c16  RevolutionOS.rmvb
 
[root@pps public_rw]# md5sum RevolutionOS_RSB.rmvb
ac7cce07f621b1ed6f692e6df0ac8c16  RevolutionOS_RSB.rmvb
 
放心了吧:)
 
如果要分割的是一个文本文件,比如有好几千行,当然每行的字符数是不等的,想要以行数为分割,比如每100行生成1个文件,只需要 -l 参数,如下:
 
[root@pps public_rw]# split -l 100 test.txt
 
其实,如果不加任何参数,默认情况下是以1000行大小来分割的。
#####################################################
示例1


将a.tar.gz包按每个5M大小切割:


split -b 5m a.tar.gz a.tar.gz.
后面输出的文件名:“a.tar.gz.”,不指定的话会以xaa,xab,xac形式输出。如果文件名后面不加”. “,输出文件名会和后缀连在一起而不直观。


示例2


使用“|” 管道将打包分割动作合并:


tar -zcf - a | split -b 5m - a.tar.gz.
注意:管道前后两个没带参数的“-”是不能省略的,他作为tar的ouput和split的input的参数。


cat命令


语法:cat [-AbeEnstTuv] [–help] [–version] fileName


-n 或 –number 由 1 开始对所有输出的行数编号


-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号


-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行


-v 或 –show-nonprinting


#cat常用功能
#一次显示整个文件
cat   filename


#创建一个文件,只能创建新文件,不能编辑已有文件
cat  >  filename


#将几个文件合并为一个文件。
cat   file1   file2  > file
所以上面的示例中将分割文件合并,可以使用:


#合并
cat a.tar.gz.* > a.tar.gz
#合并并解压
cat a.tar.gz.*  | tar -zxv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值