先看一个例子:
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:
--extract --get [options] [pathname ...]
Main operation mode:
I.创建tar
-c, --create
create a new archive
append tar files to an archive
-c, --create
create a new archive
1 #tar -cf target.tar file1 file2 ... 2 创建之后还可以用 -A -r 参数进行添加 3 --delete 参数进行删除
II.添加或删除
-A, --catenate, --concatenateappend tar files to an archive
-r, --append
append files to the end of an archive
--delete
delete from the archive (not on mag tapes!)
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
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 -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』那是关於绝对路径的特殊设定。