目前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.c8、压缩practice子目录,但是不压缩其中的某个文件file1.txt
tar --exclude practice/file1.txt -zcvf practice.tar.gz practice