前言:本篇是 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. 相关文章或系列推荐

1. Linux 学习目录合集


2. Linux :: 压缩与解压指令【1】:zip / unzip 指令:压缩与解压用法详解


Logo

更多推荐