Windows下最常见的压缩文件只有两种,.zip和.rar。可是Linux就不同了,有.Z、bz2、.gz、.tar、.tar.gz等众多的压 缩文件名,它们分别对应了各种压缩打包命令。要了解这些压缩打包命令的使用,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个 总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中的很多压缩命令只能针对一个文件进行压缩,当要压缩一大堆文件时,就得先 借助打包命令将这一大堆文件先打成一个包,然后再用压缩命令进行压缩。因此打包命令在Linux的应用中具有很重要的作用。
Linux下最常用的打包命令就是tar,使用tar命令打包后,就可以用其它的命令来进行压缩了。tar命令的使用方法如下:
tar [-cxtzjvfpPN] 文件与目录
参数说明:
-c :建立一个打包文件;
-x :解开一个打包文件;
-t :查看 tar包里面的文件;
(特别注意,在选择参数时,c/x/t仅能存在一个,不可同时存在,因为不可能同时压缩与解压缩。)
-z :打包后用gzip压缩,生成.tar.gz文件;
-j :打包后用zip2压缩,生成.tar.bz2文件;
-v :压缩的过程中显示文件;
-f :使用文件名,请留意,在f之后要立即接文件名,不要再加其它参数;
-p :保持原文件的属性;
-P :使用绝对路径来压缩;
-N :设定日期(yyyy/mm/dd),比后面接的日期还要新的文件才会被打包进新建的文件中;
--exclude FILE:在打包的过程中,不要将FILE打包。
举几个例子:
例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc #仅打包,不压缩
tar -zcvf /tmp/etc.tar.gz /etc #打包后,以gzip压缩
tar -jcvf /tmp/etc.tar.bz2 /etc #打包后,以bzip2压缩
例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件
tar -ztvf /tmp/etc.tar.gz
例三:将/tmp/etc.tar.gz文件解压缩到/usr/local/src下
cd /usr/local/src #先将工作目录变换到/usr/local/src下
tar -zxvf /tmp/etc.tar.gz
例四:只将/tmp/etc.tar.gz内的etc/passwd解压到/tmp下
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
例五:将/etc内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc
例六:在/home当中,比2005/06/01新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home
例七:备份/home、/etc,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
例八:将/etc打包后直接解开在/tmp底下,而不产生文件!
cd /tmp
tar -cvf - /etc | tar -xvf -
现在有一个需求,不知道该如何才能实现
压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory
解压:
cd /data/test
tar xzvf /data/backup/test.tar.gz
问题是,解压后的文件,在/data/test/data/a/b/directory里面
能否压缩时只保留directory以下的所有目录,以directory作为/,而不是/data/a/b/directory?
问题已经解决,找到了GNU tar的官方资料
http://www.delorie.com/gnu/docs/tar/tar_98.html
这样写就可以解决了
tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成
tar czvf /data/backup/test.tar.gz -C /data/a/b(空格)directory
-C是临时切换工作目录,-P是绝对路径,在这里只用到-C参数就行了
http://hi.baidu.com/shmilyqlc/blog/item/cbce1daf6433e0f7faed5071.html
分享到:
相关推荐
maven打包 maven打jar包详细步骤
uasurfer, 打包包以快速可靠地抽象浏览器 User Agent 字符串 uasurfer 收费 User Agent ( uasurfer ) 是一个轻量级的Golang包,它解析和抽象了 HTTP USER-AGENT 字符串,特别关注设备类型。以下信息由uasurfer从原始...
执行程序中有巨多第三方依赖包,要一起打进 jar 包,怎么办? maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办...
Eclipse怎么打jar包(可运行的jar包) 教你一步一步,学会怎么打jar包,内含详细图文教程。
手把手教你如何打jar包 手把手教你如何打jar包 手把手教你如何打jar包 手把手教你如何打jar包
该软件包可以可以在VS2005中打印条码啊
使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包
本资源是用java代码将文件夹打成zip包,网上打zip包的代码会出现中文乱码和含空文件出现问题。本资源解决了这些问题,还加入一些合理化设计。 经过测试,基本没有问题。此资源比较适合项目使用。
该批处理把d盘下com文件夹下的所有东西打成jar包,并放在d盘。
windows下打tar包的小软件,挺好用的
springboot 打thin 瘦包,jar包不包含在启动jar包中,含源代码
Android Studio 通过 gradle配置,实现同时打多个不同包名的包
IntelliJ IDEA 如何打war包.txt
命令行中ant打war包,一个简单易懂的小例子
java打zip包用ant包解决中文乱码 java打zip包用ant包解决中文乱码 java打zip包用ant包解决中文乱码
可以打包加密您的幻灯文档,并可以将文档用到的视频、音频、flash等等文件一起打 包生成一个单一的自动播放exe文件,用户无法提取文档中的文字和图片,加密后的 文档可以绑定用户电脑一机一码授权播放,用户无法传播...
总结了Eclipse和MyEclipse中web工程打war包得具体方法
7-zip打成tar包,打成tar包,打成tar包,打成tar包
Myeclipse10.X破解之后打war包报错解决,详见http://blog.csdn.net/kangziguang/article/details/78432044
当前pom.xml中详细的记录了将maven项目打成可运行jar包的完整代码,使用maven的插件maven-assembly-plugin,同时将所有依赖打到jar包中,亲测可用。