语法
tar (选项) (参数)
选项
- -A或–catenate:新增文件到以存在的备份文件;
- -B:设置区块大小;
- -c或–create:建立新的备份文件;
- -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
- -d:记录文件的差别;
- -x或–extract或–get:从备份文件中还原文件;
- -t或–list:列出备份文件的内容;
- -z或–gzip或–ungzip:通过gzip指令处理备份文件;
- -Z或–compress或–uncompress:通过compress指令处理备份文件;
- -f<备份文件>或–file=<备份文件>:指定备份文件;
- -v或–verbose:显示指令执行过程;
- -r:添加文件到已经压缩的文件;
- -u:添加改变了和现有的文件到已经存在的压缩文件;
- -j:支持bzip2解压文件;
- -v:显示操作过程;
- -l:文件系统边界设置;
- -k:保留原有文件不覆盖;
- -m:保留文件不被覆盖;
- -w:确认压缩文件的正确性;
- -p或–same-permissions:用原来的文件权限还原文件;
- -P或–absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
- -N <日期格式> 或 –newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
- –exclude=<范本样式>:排除符合范本样式的文件。
实例
将文件全部打包成tar包
[root@sxooky test]# tar cf script.tar catpv.sh diffbase.sh #仅打包,不压缩![root@sxooky test]# tar zcf script2.tar.gz catpv.sh diffbase.sh #打包后,以 gzip 压缩[root@sxooky test]# tar jcf script3.tar.bz2 catpv.sh diffbase.sh #打包后,以 bzip2 压缩[root@sxooky test]# ll script*-rw-r--r-- 1 root root 1398 Mar 31 15:23 script2.tar.gz-rw-r--r-- 1 root root 1515 Mar 31 15:23 script3.tar.bz2-rw-r--r-- 1 root root 10240 Mar 31 15:23 script.tar
在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;
如果加j选项,则以.tar.bz2来作为tar包名。
查看包中文件
[root@sxooky test]# tar tf script3.tar.bz2 catpv.shdiffbase.sh
解压文件
[root@sxooky test]# mkdir test_tar test2_tar[root@sxooky test]# tar xf script2.tar.gz -C test_tar/ #解压全部文件[root@sxooky test]# tar xf script2.tar.gz -C test2_tar/ catpv.sh #解压指定文件[root@sxooky test]# ll test*test2_tar:total 4-rw-r--r-- 1 root root 874 Mar 24 17:35 catpv.sh test_tar:total 8-rw-r--r-- 1 root root 874 Mar 24 17:35 catpv.sh-rw-r--r-- 1 root root 1699 Mar 15 13:50 diffbase.sh[root@sxooky test]# tar tf script3.tar.bz2 catpv.shdiffbase.sh
在文件夹当中,比某个日期新的文件才备份
tar -N "2012/11/13" -zcvf log17.tar.gz test
备份文件夹内容是排除部分文件
tar --exclude scf/service -zcvf scf.tar.gz scf/*
其实最简单的使用 tar 就只要记忆底下的方式即可
- 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
- 查 询:tar -jtv -f filename.tar.bz2
- 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录