现在的位置: 首页 > 综合 > 正文

linux基础知识之打包压缩命令

2013年08月29日 ⁄ 综合 ⁄ 共 1951字 ⁄ 字号 评论关闭

目前Linux下常见的压缩文件扩展名:

*.Z          compress程序压缩的文件(最早期使用),压缩后取代源文件;
*.zip        一个夸平台的文件打包程序,适用于Linux、windows和Mac OS系统;
*.bz2       bzip2程序压缩的文件;
*.gz         gzip程序压缩的文件;
*.tar         tar程序打包的文件,并没有压缩;
*.tar.gz    tar程序打包的文件,并经过gzip程序的压缩;
*.tar.bz2  tar程序打包的文件,并经过bzip2程序压缩。

在实际中,compress压缩命令已经不在是默认的压缩软件了。目前比较常见的压缩命令是gzip和bzip2。但是这些只是压缩命令而已,只针对单一文件。tar程序则可以将众多文件“打包”为一个文件,甚至对目录也可以这样做。但是tar不具有压缩的功能。后来将tar和gzip等结合起来,使用起来非常方便。

tar命令详解

tar [-cxtzjvfpPN] 文件与目录

参数:

-c :  建立压缩文件的参数(create)。

-x :  解压缩文件的参数。

-t :  查看tarfile里的文件。

       注意,-c,-x,-t三个只能有一个,不能同时存在。

-z :  是否同时具有gzip的属性?即是否需要用gzip压缩。

-j :  是否同时具有bzip2的属性?即是否需要用bzip2压缩。

-v :  压缩的过程中显示文件。

-f :  要压缩保存的文件名。注意,当加入该参数时,该参数必须放在其他参数的后边。

       tar -zcfv practice.tar.gz practice(错误)

       tar -zcvf practice.tar.gz practice(正确)

-p :  使用原文件的原来属性,不会根据用户变化。

-P :  可以使用绝对路径来压缩。

-N :  比后面接的日期(yyyy/mm/dd)还要新的才会被打包进去。

--exclude FILE :  在压缩的过程中,不要讲FILE文件打包。

常见实例

1、将当前目录的子目录practice目录下的文件全部打包成practice.tar.gz(gzip压缩)

      tar -cvf practice.tar.gz practice      (只打包不压缩)

      tar -zcvf practice.tar.gz practice    (打包并以gzip压缩)

2、将当前目录的子目录practice目录下的文件全部打包成practice.tar.bz2(bzip2压缩)

      tar -jcvf practice.tar.bz2 practice    (打包并以bzip2压缩)

3、查看当前压缩文件中有哪些文件被压缩。

     tar -ztvf practice.tar.gz

4、将指定文件压缩到practice.tar.gz中。

     tar -zcvf practice.tar.gz file1 file2 file3 dir1 dir2 dir3

5、将tar.gz文件解压到指定目录下(/home/anatherdir/)。

     tar -zxvf practice.tar.gz -C /home/anatherdir/

6、将tar.gz压缩文件中的某个文件(file1)或者/和某个目录(dir)解压

     tar -zxvf practice.tar.gz file1 dir/

7、将practice目录下晚于2011/03/14的文件压缩。

     tar -N ‘2011/03/14’ -zcvf practice.tar.gz practice

     结果如下,不知道咋回事。

                practice/
                practice/cfile.tar.gz
                tar: practice/pipes:文件未改变;未输出
                practice/a.c
                practice/pipes.c
                practice/hello.c
                practice/oushu
                practice/dir1/
                tar: practice/a:文件未改变;未输出
                tar: practice/hello:文件未改变;未输出
                practice/oushu.c

8、压缩practice子目录,但是不压缩其中的某个文件file1.txt

      tar --exclude practice/file1.txt -zcvf practice.tar.gz practice

抱歉!评论已关闭.