tar

tar: tape archive

打包压缩
将多个文件变成一个文件使用算法将单个文件体积减小

归档文件

tar包 英文为 tarball 也叫归档文件 因为它本身只打包不压缩

通用参数

参数含义
-f(file)指定包名
-v(verbose)显示操作过程

打包

参数含义
-c(create)将多个文件或目录进行打包
-A(--catenate)追加 tar 文件到归档文件
$ ls
f1.txt  f1.txt.bz2  f1.txt.xz  f3.txt  f4.txt
$ tar cvf f.tar ./*
./f1.txt
./f1.txt.bz2
./f1.txt.xz
./f3.txt
./f4.txt
$ ls
f1.txt  f1.txt.bz2  f1.txt.xz  f3.txt  f4.txt  f.tar
1
2
3
4
5
6
7
8
9
10

解包

参数含义
-x(--extract, --get)解包
-C(--directory)指定解包位置
-t(--list)查看包文件
-r(--append)追加文件到tarball
$ tar tf f.tar
./f1.txt
./f1.txt.bz2
./f1.txt.xz
./f3.txt
./f4.txt
$ tar xf f.tar -C . # 需要保证指定目录存在
1
2
3
4
5
6
7

压缩

压缩工具:

  • zip(rar)
  • gzip
  • bzip2
  • xz

解压工具:

  • unzip(unrar)
  • gunzip
  • bunzip2
  • xz

gnome-rar

使用gnome自带的图形化解压软件解压rar可能会出大问题 可能是没有对应的解压算法

只能 apt install unrar 命令行解压

TIP

除了 zip/rar 其他软件其实都是调用的同一个二进制 只不过使用的不同参数

默认压缩对于源文件操作 并添加后缀(压缩软件名) 如xz 1.txt 1.txt -> 1.txt.xz 解压会逆操作

-d 解压
-k 保留原有文件

tar 压缩

tar 可以使用如上所说的软件压缩和解压(不包括zip/unzip)

参数含义
-a(--auto-compress)根据tarball后缀自动选择工具
-j(--bzip2)使用 bzip2
-J(--xz)使用 xz
-z(--gzip)使用 gzip
# 压缩示例
$ touch {1..7}.txt
$ tar jcvf f.tar ./*
$ ls
1.txt  3.txt  5.txt  7.txt
2.txt  4.txt  6.txt  f.tar.gz
1
2
3
4
5
6
$ mkdir files
# 用什么压缩 就要用什么解压
$ tar jxf f.tar.gz -C files
# tar axf f.tar.gz -C files
$ ls files
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
1
2
3
4
5
6