`
Irving_wei
  • 浏览: 132561 次
  • 性别: Icon_minigender_1
  • 来自: Heaven
社区版块
存档分类
最新评论

打 包

阅读更多
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
分享到:
评论

相关推荐

    uasurfer, 打包包以快速可靠地抽象浏览器 User Agent 字符串.zip

    uasurfer, 打包包以快速可靠地抽象浏览器 User Agent 字符串 uasurfer 收费 User Agent ( uasurfer ) 是一个轻量级的Golang包,它解析和抽象了 HTTP USER-AGENT 字符串,特别关注设备类型。以下信息由uasurfer从原始...

    Maven将带有第三方依赖的可执行程序打包示例

    执行程序中有巨多第三方依赖包,要一起打进 jar 包,怎么办? maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办...

    Eclipse怎么打jar包(可运行的jar包)

    Eclipse怎么打jar包(可运行的jar包) 教你一步一步,学会怎么打jar包,内含详细图文教程。

    web 打印包smsx.cab

    实现打印控制,使用javaScript。 可以实现基本的打印控制

    FastReport中文包

    这个"FastReport中文包"包含了对中文的支持,确保中国用户或需要中文界面的开发者可以流畅地使用FastReport。它不仅提供了中文界面,还可能包括中文帮助文档和其他相关资源,以便于理解和操作。同时,"FastReport多...

    java 打zip包

    本资源提供了一种解决方案,解决了使用Java打zip包时可能会遇到的中文乱码和包含空文件的问题。以下是关于这个主题的一些关键知识点: 1. **Java的 ZIP API**:Java标准库提供了一个名为`java.util.zip`的包,它...

    如何打jar包,教你如何打jar包

    1. **使用Eclipse IDE打JAR包** - 在Eclipse中,打开你的Java项目。 - 右键点击项目,选择"Export"。 - 在弹出的窗口中,展开"Java"选项,然后选择"JAR file",点击"Next"。 - 在"JAR export wizard"中,确认...

    打Jar包小工具,运行cmd.bat自动打jar包

    "打Jar包小工具"是一个便捷的解决方案,旨在简化这个过程。这个工具包含两个核心文件:`cmd.bat` 和 `package.txt`。 `cmd.bat` 是一个批处理脚本,它通常包含了运行Java的jar打包命令,如`jar`命令。在Windows环境...

    .bat打jar包批处理文件

    该批处理把d盘下com文件夹下的所有东西打成jar包,并放在d盘。

    windows下打tar包的小软件

    "windows下打tar包的小软件"是指专门为在Windows环境下创建和管理tar文件而设计的实用程序。这些软件通常具有简单易用的图形用户界面,使得不熟悉命令行工具的用户也能方便地进行tar文件的操作。 tar文件格式起源于...

    tomcat打成rpm包运行.zip

    在IT行业中,尤其是在服务器管理和自动化部署的场景下,将应用程序如Tomcat打成RPM(Red Hat Package Manager)包是一项常见的任务。RPM包是一种在Linux系统中广泛使用的软件包管理格式,它允许用户轻松安装、升级和...

    ant打war包

    在IT行业中,构建和部署Web应用是至关重要的过程,而"ant打war包"就是这一过程中的一项技术。Ant是Apache软件基金会开发的一款Java构建工具,它以XML为基础,用于自动化构建Java项目,如生成JAR、WAR等类型的打包...

    java文件打成jar包

    Java 文件打成 JAR 包 Java 文件打成 JAR 包是 Java 开发中一个常见的操作,这样可以方便地发布和分发 Java 应用程序。在本节中,我们将详细介绍如何将 Java 文件打成 JAR 包,并删除 JAR 包中的文件。 什么是 JAR...

    PPTX高级扩展打包加密器

    可以打包加密您的幻灯文档,并可以将文档用到的视频、音频、flash等等文件一起打 包生成一个单一的自动播放exe文件,用户无法提取文档中的文字和图片,加密后的 文档可以绑定用户电脑一机一码授权播放,用户无法传播...

    aar包合并打包;module引用第三方aar包;library依赖aar包

    本示例主要解决module中引用aar包依赖报错的问题,及aar包合并打成新aar包的问题。aar合并打包报错解决方案,library、module集成aar包报Execution failed for task ':app:mergeDebugNativeLibs、Could not resolve ...

    SAP 打语言包(SMLT)

    ### SAP 打语言包(SMLT)操作指南 #### 一、简介 SAP系统中的语言包(Language Pack)管理对于确保系统能够正确显示多种语言界面至关重要。本指南将详细介绍如何通过SAP的SMLT事务代码来安装、更新语言包以及进行...

    java程序打jar包

    以下是对如何使用MyEclipse将Java程序打成jar包的详细步骤及注意事项的解释: 1. **项目导出**: 在MyEclipse中,首先需要选择你要打包的Java项目。右键点击项目,在弹出的菜单中选择“Export”(导出)选项,这是...

    Eclips中web工程打war包

    ### Eclipse和MyEclipse中Web工程打包成WAR文件的方法 #### Eclipse中Web工程打包成WAR文件的方法 在Eclipse中将Web项目打包成WAR文件是一个常见的操作,这对于部署到服务器或者进行版本控制等方面非常有用。...

    java web项目自动打补丁包 web工程项目 自动化 补丁包

    在IT行业中,尤其是在Java Web项目的开发与维护过程中,自动化打补丁包是一个高效且重要的环节。这个过程可以显著提升开发团队的工作效率,减少手动操作带来的错误,并确保项目的稳定性和安全性。下面将详细解释标题...

    springboot 打thin 瘦包教程,jar包不包含在启动jar包中,含源代码

    然而,标准的SpringBoot JAR包会包含所有依赖项,这使得文件体积较大,不利于分发和存储。为了解决这个问题,我们可以使用"thin"打包方式,将JAR包瘦身。 "thin"打包方式是SpringBoot提供的一种优化策略,它的核心...

Global site tag (gtag.js) - Google Analytics