Linux tar 命令简介

315 阅读3分钟

这是我参与8月更文挑战的第17天,活动详情查看:8月更文挑战

tar 命令简介

  • 打包压缩是日常工作中备份文件的一种方式
  • 在不同操作系统中,常用的打包压缩方式是不同的
    • Windows 常用 rar
    • Mac 常用 zip
    • Linux 常用 tar.gz

tarLinux 中最常用的打包工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件。

注意: tar 只负责打包和解包,不负责压缩。

小明,把这个目录打成一个 tar

# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...

# 解包文件
tar -xvf 打包文件.tar

【!】 ccreatexextract

tar 选项说明

选项含义
c生成档案文件,创建打包文件
x解开档案文件
v列出归档解档的详细过程,显示进度
f指定档案文件名称, f 后面一定是 .tar 文件,所以必须放选项最后

注意:f 选项必须放在最后,其他选项顺序可以随意


打包解包范例

打包解包演练

  1. 删除桌面下的所有内容
  • rm -r *
  • ls -l
  1. 在桌面下新建三个空白文件 01.py02.py03.py
  • touch 01.py
  • touch 02.py
  • touch 03.py
  1. 将这三个文件打一个 py.tar 的包

可以使用通配符

jpch89@ubuntu:~/Desktop$ tar -cvf py.tar *.py
01.py
02.py
03.py

不使用通配符的话用空格隔开

tar -cvf py.tar 01.py 02.py 03.py

查看一下结果

jpch89@ubuntu:~/Desktop$ ls -l
total 12
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 01.py
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 02.py
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 03.py
-rw-r--r-- 1 jpch89 jpch89 10240 Sep 20 01:31 py.tar
jpch89@ubuntu:~/Desktop$ ls -lh
total 12K
-rw-r--r-- 1 jpch89 jpch89   0 Sep 20 01:30 01.py
-rw-r--r-- 1 jpch89 jpch89   0 Sep 20 01:30 02.py
-rw-r--r-- 1 jpch89 jpch89   0 Sep 20 01:30 03.py
-rw-r--r-- 1 jpch89 jpch89 10K Sep 20 01:31 py.tar
  1. 新建 tar 目录,并且将 py.tar 移动到 tar 目录下
  • mkdir tar
  • mv py.tar tar
  • tree
  1. 解包 py.tar
  • cd tar

然后解包

jpch89@ubuntu:~/Desktop/tar$ tar -xvf py.tar
01.py
02.py
03.py
jpch89@ubuntu:~/Desktop/tar$ ls -l
total 12
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 01.py
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 02.py
-rw-r--r-- 1 jpch89 jpch89     0 Sep 20 01:30 03.py
-rw-r--r-- 1 jpch89 jpch89 10240 Sep 20 01:31 py.tar

解包出来的文件默认与 *.tar 文件在同一层目录


tar 命令配合 gzip 命令实现压缩和解压

targzip 命令结合可以使用实现文件打包和压缩

  • tar 只负责打包文件,但不压缩
  • gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz

Linux 中,最常见的压缩文件格式就是 xxx.tar.gz

tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的功能。

命令格式

# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...

# 解压缩文件
tar -zxvf 打包文件.tar.gz

# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径

-C 解压缩到指定目录,注意:要解压缩的目录必须存在。


tar 命令配合 bzip2 实现压缩和解压

  • tarbzip2 命令结合可以使用实现文件打包和压缩(用法和 gzip 一样)
  • tar 只负责打包文件,但不压缩,用 bzip2 压缩 tar 打包后的文件,其扩展名一般是 xxx.tar.bz2
  • bzip2 中的 2 要读成 two

tar 命令中有一个选项 -j 可以调用 bzip2 ,从而可以方便的实现压缩和解压缩的功能。

命令格式:

# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...

# 解压缩文件
tar -jxvf 打包文件.tar.bz2

注意:同样可以使用 -C 指定解压缩的目录,该目录必须已经存在!