Linux :: 打包与解包指令【2】:tar 指令:打包与解包用法详解【重要!!!】
本期内容主要介绍了 Linux 中的 tar 指令及其用法:推荐使用打包组合选项 -czvf;解包组合 -xzvf;同时提供了指令的使用示例,打包解包指定目录或文件,及打包解包的包到指定目录等。
·
前言:本篇是 Linux 基本操作篇章的内容!
笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。
学习集:
目录索引:
1. 基本语法及功能
2. 可选参数说明【重要】
3. 创建测试示例
4. tar 打包指令使用示例
- - 4.1 打包到当前目录/文件
- - 4.2 显示打包细节
5. tar 解包指令使用示例
- - 5.1 解包到当前目录/文件
- - 5.2 解包到指定目录
6. 关于打包与压缩简要解释
7. 相关文章或系列推荐
1. 基本语法及功能
基本语法:tar [-cxtzjvf] 文件与目录 …参数
功能:打包/解包,不打开它,直接看内容!【一般打包后的后缀为:tgz】
2. 可选参数说明
说明:由于 tar 指令的可选参数多,且复杂,通常情况下我们只需记住以下两种组合参数即可:
- 打包:tar -czvf
- 解包:tar -xzvf
- c:创建打包文件
- x:解开有一个打包文件
- z:同时具有被打包对象的属性
- f:取名
- v:显示打包细节
可选参数 | 参数意义 |
---|---|
-c | 建立一个压缩文件 |
-x | 解开有一个压缩文件 |
-f | 使用文档名,使用时后紧跟写新文档名 |
-v | 在压缩过程中显示文件,常用,但不推荐用在背景执行过程 |
-t | 查看 tarfile 里面的文件 |
-j | 是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? |
-z | 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? |
-C | 解压到指定目录 |
3. 创建测试示例
[Mortal@VM-12-16-centos unzip_test]$ cd ~
[Mortal@VM-12-16-centos ~]$ mkdir test_tar
[Mortal@VM-12-16-centos ~]$ cd test_tar
[Mortal@VM-12-16-centos test_tar]$ mkdir -p a/aa/aaa
[Mortal@VM-12-16-centos test_tar]$ echo "a: test" > tar.txt
[Mortal@VM-12-16-centos test_tar]$ echo "aa:test" > a.txt
[Mortal@VM-12-16-centos test_tar]$ echo "aaa: test" > a/aa/aaa/a.txt
[Mortal@VM-12-16-centos test_tar]$ tree .
.
|-- a
| `-- aa
| `-- aaa
| `-- a.txt
|-- a.txt
`-- tar.txt
3 directories, 3 files
4. tar 打包指令使用示例
4.1 打包到当前目录/文件
用法:tar czf 打包后的名 打包对象
- c:创建打包文件
- z:同时具有被打包对象的属性
- f:取名
/* 打包目录 */
[Mortal@VM-12-16-centos test_tar]$ ls
a a.txt tar.txt
[Mortal@VM-12-16-centos test_tar]$ tar czf a_tar.tgz a
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt tar.txt
/* 打包文件 */
[Mortal@VM-12-16-centos test_tar]$ tar czf a_txt.tgz a.txt
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt a_txt.tgz tar.txt
.4.2 显示打包细节
用法:tar czvf 打包后的名 打包对象
- v:显示打包细节
/* 打包目录 */
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt a_txt.tgz tar.txt
[Mortal@VM-12-16-centos test_tar]$ mkdir tar_v
[Mortal@VM-12-16-centos test_tar]$ cp a tar_v
cp: omitting directory ‘a’
[Mortal@VM-12-16-centos test_tar]$ cp -r a tar_v
[Mortal@VM-12-16-centos test_tar]$ ls tar_v
a
[Mortal@VM-12-16-centos test_tar]$ cd tar_v/
[Mortal@VM-12-16-centos tar_v]$ ls
a
[Mortal@VM-12-16-centos tar_v]$ tar czvf new_tar_v.tgz a
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
[Mortal@VM-12-16-centos tar_v]$ ls
a new_tar_v.tgz
/* 打包文件 */
[Mortal@VM-12-16-centos tar_v]$ cp ../tar.txt .
[Mortal@VM-12-16-centos tar_v]$ ls
a new_tar_v.tgz tar.txt
[Mortal@VM-12-16-centos tar_v]$ tar czvf a_v.tgz tar.txt
tar.txt
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz tar.txt
5. tar 解包指令使用示例
5.1 解包到当前目录
用法:tar xzvf 解包对象
- 注:其中操作可选指令意义同之前的打包
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz tar.txt
[Mortal@VM-12-16-centos tar_v]$ mkdir open_tar
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz open_tar tar.txt
[Mortal@VM-12-16-centos tar_v]$ cp a_v.tgz new_tar_v.tgz open_tar/
[Mortal@VM-12-16-centos tar_v]$ ls open_tar/
a_v.tgz new_tar_v.tgz
[Mortal@VM-12-16-centos tar_v]$ cd open_tar/
[Mortal@VM-12-16-centos open_tar]$ ls
a_v.tgz new_tar_v.tgz
[Mortal@VM-12-16-centos open_tar]$ tar xzvf a_v.tgz
tar.txt
[Mortal@VM-12-16-centos open_tar]$ tar xzvf new_tar_v.tgz
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
5.2 解包到指定目录
用法:tar xzvf 解包对象 -C 指定目录
- -C:标识解包到其后跟的指定目录(指定的目录必须存在!)
[Mortal@VM-12-16-centos open_tar]$ mkdir test_C
[Mortal@VM-12-16-centos open_tar]$ tar xzvf new_tar_v.tgz -C test_C
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
[Mortal@VM-12-16-centos open_tar]$ ls test_C/
a
[Mortal@VM-12-16-centos open_tar]$ tree test_C/
test_C/
`-- a
`-- aa
`-- aaa
`-- a.txt
3 directories, 1 file
6. 关于打包与压缩
打包:就是把东西归纳在一起,不压缩大小! 就好比上学时,把书放书包里,只是把不同科目的书放进书包一起背着上学。
压缩:目的就是为了把原大小的东西进行空间压缩!
7. 相关文章或系列推荐
更多推荐
已为社区贡献3条内容
所有评论(0)