linux下tar命令使用

1.tar命令用于对多个文件打包,方便管理。用tar打包后的文件是以.tar结尾的。

2.tar命令常用的参数

-c :建立打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解包或解压缩的功能,可以搭配-C (大写) 在特定目录解开
-j : 使用bzip2进行压缩/解压缩,文件名默认为*.tar.bz2;
-z :使用gzip进行压缩/解压缩,文件名默认为*.tar.gz;
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来;
-f : -f后面要立刻接要被处理的文件名,不要再加参数,也可以把-f单独写一个选项;
-C :这个选项用在解压缩,后面跟目录,目的就是把文件解压缩到指定的目录;
-p :保留数据的原本权限与属性,常用于备份(-c);
-P :保留绝对路径,也就是说允许备份数据中含有根目录存在之意;
-r : 向打包文件里面追加文件。例如用户已经打包好文件,又发现还有一个目录或是一些文件忘记打包了,这时可以使用该选项,将忘记的目录或文件追加到打包的文件中;
--exclude=FILE:在压缩的过程中,不要将FILE打包;
-u :更新文件。就是说用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后;
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中;
 
3. 举例
(1)tar -cf bak.tar ./*.log
将当前目录下的所有log文件打成一个叫做bak.tar的包;

(2)tar -rf bak.tar ./*.txt
将当前目录下的所有txt文件增加到bak.tar的包里;

(3)tar -uf bak.tar ./tc.txt
更新包bak.tar中tc.txt文件,若原来没有则追加;

(4)tar -tf bak.tar 
列出bak.tar包中所有文件;

(5)tar -xf bak.tar 
解出bak.tar包中所有文件;

(6)tar -czf bak.tar.gz ./*.log
将当前目录下所有log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包;

(7)tar -xzf bak.tar.gz
将bak.tar.gz文件先用gzip解压,解包;

(8)tar -cjf bak.tar.bz2 ./*.log
将当前目录下所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

(9)tar -xjf bak.tar.bz2
将bak.tar.bz2文件先用bzip2解压,解包;

(10)tar -z[j]tvf bak.tar.gz(bz2) tc.log
从包bak.tar.gz(bz2)里只解压出文件tc.log;

(11)tar -cpjf bak.tar.bz2 ./*.log
将当前目录下所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包,并且保留文件权限;

(12)tar --exclude=./sys.log -jcv -f bak.tar.bz2 ./*.log 
将当前目录下除sys.log以外所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

(13)tar -N "2010/10/08" -jcv -f bak.tar.gz ./*.log
将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包;

(14)tar --newer-mtime="2010/10/08" -jcv -f bak.tar.bz2 ./*.log
将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

(15)tar -tv -f bak.tar.gz(bz2)
查看bak.tar.gz(bz2)里面的内容;

猜你喜欢

转载自zhaocuifang-bf.iteye.com/blog/2188734