Linux命令之tar:文件打包(备份)、压缩、解压

语法

tar  (选项)  (参数)bash

选项

  • -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 来做为辨识。spa

若是加z选项,则以.tar.gz或.tgz来表明gzip压缩过的tar包;code

若是加j选项,则以.tar.bz2来做为tar包名。ip

查看包中文件

[root@sxooky test]# tar tf script3.tar.bz2 
catpv.sh
diffbase.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.sh
diffbase.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 欲解压缩的目录
相关文章
相关标签/搜索