首页 > 代码库 > tar -- 打包压缩文件

tar -- 打包压缩文件

先看一个例子:

1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用

tar zcvf this.tar.gz ./*.txt

2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用
tar xzvf this.tar.gz ./
 
下面介绍几个重要的参数:
(一)打包部分参数
     tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t --list | --test-label | u --update | x
         --extract --get [options] [pathname ...]
     Main operation mode:
I.创建tar
     -c, --create
           create a new archive
1 #tar -cf target.tar file1 file2 ...2 创建之后还可以用 -A -r 参数进行添加3 --delete 参数进行删除

II.添加或删除

     -A, --catenate, --concatenate
           append tar files to an archive
     -r, --append
           append files to the end of an archive
     --delete
           delete from the archive (not on mag tapes!)


1 #tar -Af target.tar source1.tar source2.tar ...        添加其他 打包文件到一个打包文件中2 #tar -rf target.tar file1 file2 ...            添加其他文件到一个打包文件中
3 #tar -f target.tar --delete file1 file2 ...        把一个文件从一个打包文件中删除

 
III.查看
    -d, --diff, --compare
           find differences between archive and file system
     -t, --list     这是个很有用的选项
           list the contents of an archive

     -u, --update  这也是个很有用的选项
           only append files newer than copy in archive
1 #tar -tf target.tar         查看打包文件中的内容2 #tar -df target.tar file     3 #tar -uf target.tar file1 file2 ...         更新打包文件中的内容

IV.解开

    既然有打包必然有解开
     -x, --extract, --get
           extract files from an archive
1 #tar -xf target.tar

 

 

(二)压缩参数

指定使用哪种压缩算法的参数

     -j, --bzip2
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

(三)其他

     -v, --verbose
           verbosely list files processed
这个参数相当与把过程展示给你看

(四)常见组合
针对一下的格式便产生了一些组合

1 #tar -zcvf  target.tar.gz  /dir                  打包后以gzip压缩2 #tar -jcvf target.tar.gz /dir                    打包后以bzip2压缩3 4 将 -c 参数换成 -x 参数就变为解压缩5 6 #tar -zcvf  target.tar.gz  /dir                  gzip解压缩7 #tar -jcvf target.tar.gz /dir                    bzip2解压缩

 

[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/‘ from member names』那是关於绝对路径的特殊设定。


tar -- 打包压缩文件