在实际工作中,经常需要把一些大文件进行拆分,或者把拆分过的文件进行合并。比如有一个2GB的归档文件,要刻录在光盘里作备份。普通CD光盘的容量约650MB左右,这就需要将文件分割成数个小文件,日后使用时再将其合并。下面就以Fedora Core 2.0为例,介绍两种方法。
split命令
1.切割文件
把大文件file切割成大小为650MB的几个小文件,命令如下:
#split -b 650m file filebak_
“-b”参数后面跟每一输出档案的大小,其默认单位为byte。也可加入单位,b代表512byte,k代表1KB,m代表1MB。“filebak_”是定义分割后的文件名前缀。命令执行完后,用“ls”看看效果。
# ls -lh
total 4.0G
drwxr-xr-x 2 root root 200 Jul 3 00:50 .
drwx------ 12 root root 624 Jul 3 00:51 ..
-rw-r--r-- 1 root root 2.0G Jul 3 00:35 file
-rw-r--r-- 1 root root 650M Jul 3 00:49 filebak_aa
-rw-r--r-- 1 root root 650M Jul 3 00:50 filebak_ab
-rw-r--r-- 1 root root 650M Jul 3 00:50 filebak_ac
-rw-r--r-- 1 root root 50M Jul 3 00:50 filebak_ad
系统会自动计算出切割文件的数量,例子中共分成了4个小文件。
2.合并
合并的操作如下:
#cat filebak_a* > ./file
aini 于 2005-09-29 11:02:43发表:
感谢分享
wide 于 2005-09-29 00:47:13发表:
knife工具
1.分割
#./knife -c file 681574400
681574400是分割文件的大小,单位为bit,相当于650MB。
命令执行完后,可用“ls”察看效果。
# ls -l
total 4100028
drwxr-xr-x 2 root root 272 Jul 3 01:21 .
drwxr-xr-x 3 root root 104 Jul 3 01:13 ..
-rw-r--r-- 1 root root 2097152000 Jul 3 00:35 file
-rw-r--r-- 1 root root 681574400 Jul 3 01:18 file.k00
-rw-r--r-- 1 root root 681574400 Jul 3 01:19 file.k01
-rw-r--r-- 1 root root 681574400 Jul 3 01:21 file.k02
-rw-r--r-- 1 root root 52428800 Jul 3 01:21 file.k03
-rwxr-xr-x 1 root root 12949 Feb 28 2000 knife
2.合并
合并的命令如下:
#./link file file.k00 file.k01 file.k02 file.k03
则会出现如下提示:
Please intput the file name you want to LINK up, one by one.
Just input OK when you have finished inputting. In this order:
检查一下要合并的文件,输入完全正确再回车。
Now it's time you type the name of the output file.
→file
确认合并后的文件名是否为“file”,如果是则回车。
小结
上面两种方法相比较,本人推荐用split。split是系统自带的软件,安全性和稳定性都比knife高,对大文件的切割速度也快,而且能根据指定切割容量,自动算出切割文件的个数。knife是第三方的软件,切割大文件需要花费较长的时间。