记录一些常用的函数和瞎折腾的过程……

Linux系统中应用tar命令压缩和打包

提醒:本文最后更新于 1436 天前,文中所描述的信息可能已发生改变,请谨慎使用。

一直在用Linux系统,VPS是Linux,电脑装的也是Ubuntu,时常要对一些文件进行压缩打包备份啥的,就经常要用到tar命令,长时间不用,倒还容易忘记,现记录下来,以便随时可以查用。

tar命令的基本形式:

tar [-cxtzjvfpPN] 目标文件 源文件

参数说明:

-c :建立压缩文件的参数命令(creat的意思)

-x :解压缩文件的参数命令

-t :查看tar包里文件的命令特别注意,在使用参数时,c/x/t只能有一个,不能同时存在因为不可能同时压缩与解压缩。

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

-j :是否同时具有bz2的属性,即是否需要用bzip2压缩(记不住的就是它)

-v :压缩过程中显示文件,这个常用,呵基本上我现在每次解压都会看一下里面的文件

-f :使用文件名,之后立即加文件名,不能再加别的参数

-p :使用原文件的原来属性(属性不会根据用户而变),这个从来没用过。。

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

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

–exclude FILE :在压缩的过程中,不要将FILE打包

常用的命令如下:

一、.tar.gz压缩文件操作:

1、压缩成gzip文件:

[root@server ~]$ tar -zcvf TargetFile.tar.gz SourceFile

2、将.tar.gz文件解压:

[root@server ~]$ tar -zxvf TargetFile.tar.gz

二、.bz2压缩文件操作:

1、压缩为bz2文件:

[root@server ~]$ tar -jcvf TargetFile.tar.bz2 SourceFile

2、将bz2文件解压:

[root@server ~]$ tar -jxvf TargetFile.tar.bz2

三、.tar压缩文件操作:

1、压缩为tar文件:

[root@server ~]$ tar -cvf TargetFile.tar SourceFile

2、将.tar文件解压:

[root@server ~]$ tar -xvf TargetFile.tar

四、.tar.xz压缩文件操作:

1、压缩.tar.xz文件(需要执行2次):

[root@server ~]$ tar -cvf TargetFile.tar SourceFile
[root@server ~]$ xz -z TargetFile.tar

2、将.tar.xz文件解压:

[root@server ~]$ tar -jxvf TargetFile.tar.xz

另外说一下,打包文件时,可能会包含很长的文件路径,如果只打包文件而不包含路径,需要用到参数-C,可以使用以下命令(例:打包/data/path/to/file下的文件SourceFile,不包含路径):

[root@server ~]$ tar -czvPf Files.tar.gz -C /data/path/to/file SourceFile

打包文件夹时,若要排除文件夹中其它文件,可以使用--exclude参数进行排除,具体命令如下(例:打包/data/path/to/file下的文件,排除afile和bfile):

[root@server ~]$ tar -czvPf Files.tar.gz /data/path/to/file --exclude=/data/path/to/file/afile --exclude=/data/path/to/file/bfile

打包时既要不包含路径也要排除某些文件,可以综合上面的就可以,注意同时使用-C和--exclude参数(例如:打包/data/path/to/file下的SourceFile文件夹,但不包含该文件下的afile和bfile,同时不包含该文件夹的路径):

[root@server ~]$ tar -czvPf Files.tar.gz -C /data/path/to/file --exclude=SourceFile/afile --exclude=SourceFile/bfile SourceFile