tar是文件打包工具,split是文件分割工具,在邮件中发送附件的时候,可能因为附件大小限制,需要压缩并分割,分几封邮件发送。如果需要备份很多资料的时候,打包后的单个文件可能超出文件系统支持的单个文件大小限制的时候,也需要分割成适合大小的文件包。刚好今天又要备份skype文件夹,所以就用这个实例来说明一下tar和split这两个指令,如何压缩、分割,再通过cat合并分割的文件解压还原,以及在管道”|”配合下的打包分割文件过程。

例如:我的.skype文件已经有35M之多了,现在需要压缩备份起来,直接用tar打包:

tar压缩文件:
[marco.chan@linuxhobby backup]$ ls
skype_backup
[marco.chan@linuxhobby backup]$ tar -czvp -f skype_backup.tar.gz skype_backup
中间的打包压缩输出过程省略…
skype_backup/marco.chan.skype/chat512.dbb
skype_backup/marco.chan.skype/user4096.dbb
skype_backup/marco.chan.skype/chatmsg256.dbb
skype_backup/shared.xml
skype_backup/shared.lck
[marco.chan@linuxhobby backup]$ ls
skype_backup.tar.gz skype_backup

因为用了“-v”参数,所以中间会输出打包压缩的文件信息。
-c (create)当然是建立一个打包文件。
-z (gzip)调用gzip进行压缩,建议后缀名为*.tar.gz;也可以用-j(bzip2),建议后缀名为*.tar.bz2。
-p (preserve-permissions)小写的p,保持原先的文件属性,也就是rwx属性。
-f (file)输出的目标文件“skype_backup.tar.gz” 将要被处理的源文件“skype_backup”,可以将-f连写,但是为了容易记忆和区分,所以这里分开写了。

打包后的skype_backup.tar.gz还有15M大小,但是我的邮件附件就支持6M大小,所以还得分割。

splite分割文件
[marco.chan@linuxhobby backup]$ split -b 4000k skype_backup.tar.gz skype_backup_20090626.tar.gz. –verbose
creating file `skype_backup_20090626.tar.gz.aa’
creating file `skype_backup_20090626.tar.gz.ab’
creating file `skype_backup_20090626.tar.gz.ac’
creating file `skype_backup_20090626.tar.gz.ad’
[marco.chan@linuxhobby backup]$ ls
skype_backup skype_backup_20090626.tar.gz.ac
skype_backup_20090626.tar.gz.aa skype_backup_20090626.tar.gz.ad
skype_backup_20090626.tar_20090626.gz.ab skype_backup.tar.gz

-b 指定分割大小,例如k,m等单位。
–verbose 输出分割文件信息,可选。
skype_backup.tar.gz 被分割的文件。
skype_backup_20090626.tar.gz. 分割后的文件名(注意gz后面的”.”),如果不指定的话,默认是xaa,xab,xac。

现在通过tar,split,已经将skype_backup目录文件打包、分割为每个最大为4M大小的压缩包了。
以上是分步执行,如果用管道”|”,将tar,split写成一个执行语句:

使用管道“|”合并两个指令:
[marco.chan@linuxhobby backup]$ tar -czvp -f – skype_backup |split -b 4000k – skype_backup_20090626.tar.gz. –verbose
[marco.chan@linuxhobby backup]$ ls
skype_backup
skype_backup_20090626.tar.gz.aa
skype_backup_20090626.tar.gz.ab
skype_backup_20090626.tar.gz.ac
skype_backup_20090626.tar.gz.ad

注意一下指令中的两个“-”,如果分开执行,就不用”-”。为什么有这个”-”?

man tar
-f, –file [HOSTNAME:]F
Use archive file or device F (default “-”, meaning stdin/stdout). Note that “/dev/stdout” is not equivalent to “-”.Using “/dev/stdout” explicitly can lead to corrupted archive, especially when coupled with “-v”.

如何解压分割文件?
把文件分割了几个包,当然也要能合并解压了,合并文件当然用cat了,cat不仅仅是用来处理合并文本文件的,也可以用来合并压缩文件。

cat合并分割的文件:
[marco.chan@linuxhobby backup]$ cat skype_backup_20090626.tar.gz.a* >skype_backup_cat.tar.gz

将之前分割的压缩包合并成skype_backup_cat.tar.gz,然后可以通过tar -zxvf来解压skype_backup_cat.tar.gz,通过管道”|”可写成:

使用管道“|”合并两个指令:
[marco.chan@linuxhobby backup]$ cat skype_backup_20090626.tar.gz.a* |tar -zxv

关于更多的tar、split、cat指令应用,建议通过man查询。

转摘请注明出处:麦麦的不老阁 » 《使用tar和split打包分割文件
本文地址:http://www.uncle.ws/2009/06/tar-split-cat/
订阅博客地址:http://www.uncle.ws/subscribe/

转载于:https://www.cnblogs.com/xiaouisme/archive/2011/05/25/2057435.html

(转)使用tar和split打包分割文件相关推荐

  1. tar命令打包分割文件

    #tar czf - T.msi | split -b 50m - T.msi. 将275M的T.msi文件,按照每个50M的规格打包分割 最后生成 -rw-r--r-- 1 root root  5 ...

  2. split 自动分割文件脚本

    #!/bin/bash date=$(date +%F) filename="$(echo $1 | sed 's/.csv$//' )_${date}" split -l 1 $ ...

  3. linux中split分割文件打开方式,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  4. linux文件分割命令性能,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  5. centos7 split 切割文件_CentOS下split分割文件命令实例

    你曾经是否想要把一个大文件分割成多个小文件?比如一个5gb日志文件,我们需要把它分成多个小文件,这样我们才有可能使用普通的文本编辑器读取它.有时我们需要传输20gb的大文件到另一台服务器,这就需要我们 ...

  6. linux 4g大小文件夹,Linux: 如何分割文件,不再被 4G 大小限制了

    单文件 4G 限制 FAT32 4G 限制 百度网盘超出 4G 限制 单文件分割与合并 单文件,如:archive.tar.gz 分割 split -b 3000M -d -a 1 archive.t ...

  7. linux下分割文件的方法,关于linux系统下分割大文件的方法

    <关于linux系统下分割大文件的方法>由会员分享,可在线阅读,更多相关<关于linux系统下分割大文件的方法(4页珍藏版)>请在人人文库网上搜索. 1.关于 linux系统下 ...

  8. linux下分割文件的方法,linux系统下分割大文件的方法有哪些

    学习啦小编我在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取.有时,需要传输20gb的大文件到另一台服务器,也需要把它分割成多个文件,这样便于 ...

  9. linux打包压缩文件并命名,linux下如何将文件打包、压缩并分割成制定大小

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

最新文章

  1. KMP算法求回溯数组的步骤
  2. C# ConfigurationManager不存在问题解决
  3. 学完计算机之后的感受,计算机教学心得心得体会
  4. asp.net添加删除表格_如何用openpyxl自动化编写Excel电子表格
  5. 从阿里云数据库入选Gartner谈数据库的演化
  6. python使用的编辑器_我用过的最好的python编辑器PyScripter
  7. [家里蹲大学数学杂志]第387期一套实变函数期末试题参考解答
  8. Elasticsearch集群监控工具bigdesk插件安装
  9. java object转map_Java 面试题:百度前 200 页都在这里
  10. 最值得收藏的 算法分析与设计 全部知识点思维导图整理(北大慕课课程)
  11. 如何打开剪贴板查看器?
  12. PDF怎么编辑,如何裁剪PDF其中一页
  13. 小白转行学IT入职BAT应该怎么做
  14. 面经手册 · 第20篇《Thread 线程,状态转换、方法使用、原理分析》
  15. Gephi 网络可视化——调整网络布局
  16. java和springboot开发的租房app房东直租系统租房网站
  17. 社招,文章很细节,大家看下我有多细
  18. 学生php作业,作业作业作业作业作业
  19. 小学计算机室行事周历,关于小学信息技术教案八篇
  20. Android动画特效第二弹——QQ聊天彩蛋蹦蹦哒

热门文章

  1. 转载——Regression Tree 回归树
  2. java中集合(List)的嵌套分配值、移除等操作
  3. poj 1182 食物链的一种解法(详解),非向量法
  4. 【小程序】【Tips】跨页面全局变量的正确方法 - globalData
  5. 单频和混频是什么意思_科研| 谐波混频器常见电路小结
  6. 网页没有横向滚动条_【第四课】网页里的表单
  7. matlab table中的文字转string_el-table 滚动条美化
  8. delphi7升级delphi2007可以互用马_马爹利鼎盛周末饭局暂停营业,未来再见
  9. html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...
  10. nuke无法理解服务器的响应,cuke4nuke服务器没有重新开始