压缩 & 解压缩
压缩
*.gz
.tar
shell
tar -cvf *.tar [File]...
.tar.gz
、tgz
shell
tar -czvf *.tar.gz [File]...
tar -czvf *.tgz [File]...
解压
.tar
shell
tar -xvf *.tar
.tar.gz
、.tgz
shell
tar -zxvf *.tar.gz
.tar.xz
shell
xz -d *.tar.xz
tar -xvf *.tar
tar 命令详解
可将一个或者多个文件和文件夹打包为一个文件。
tar [OPTION...] [FILE]...
关键参数
-c
: 打包文件-x
: 提取文件(提取文件会覆盖原本存在的文件)-f
: 对于打包文件则是指定打包的文件(未存在的,对于已存在的文件会被覆盖),对于提取文件也是指定打包的文件(已存在的)-v
|-p
: 这是一对选项,默认不传是 -p,使用 -v 则会显示详细的打包过程。对于
-t
命令,-v
会显示更详细的信息,类似ls -l
的输出。-C
:- 和
-c
组合:表示修改当前目录位置,从而不用切换到指定目录示例:
tar -cf test.tar -C /bin .
可直接将根目录的bin
文件夹打包 - 和
-t
组合:几乎没什么作用 - 和
-x
组合:表示指定解压文件到什么目录内示例:
tar -xf test.tar -C /tmp .
可直接将文件解压到tmp
文件夹进行处理
- 和
-z
: 使用gzip
格式压缩或者解压缩文件,即和-c
组合表示压缩,和-x
组合表示解压-j
: 使用bzip2
格式压缩或者解压缩文件,即和-c
组合表示压缩,和-x
组合表示解压--exclude=PATTERN
: 使用一个 PATTERN 排除文件
zip 和 unzip 命令详解
zip
负责可将一个或者多个文件和文件夹打包为一个 zip 文件。 unzip
负责可将 zip 文件解压。
shell
yum install zip unzip
zip
shell
zip [选项] 压缩文件名.zip 源文件或目录
常用选项:
-r
: 递归的将目录下的所有文件和子目录都打包到 zip 文件中示例
目录结构:
txt. ├── dir1 │ └── file2 └── file1
不使用 -r 进行打包:
shellzip test.zip * unzip -v test.zip
输出为:
txtArchive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 07-23-2024 01:58 00000000 dir1/ 0 Stored 0 0% 07-23-2024 01:58 00000000 file1 -------- ------- --- ------- 0 0 0% 2 files
使用 -r 进行打包:
shellzip -r test.zip * unzip -v test.zip
输出为:
txtArchive: test.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 07-23-2024 01:58 00000000 dir1/ 0 Stored 0 0% 07-23-2024 01:58 00000000 dir1/file2 0 Stored 0 0% 07-23-2024 01:58 00000000 file1 -------- ------- --- ------- 0 0 0% 3 files
-q
: 不显示打包过程-v
: 显示详细的打包过程-m
: 文件打包后删除源文件-u
: 更新 zip 里的文件-d
: 从 zip 中删除文件-X
: 压缩级别(1-9)-P
: 设置压缩密码
unzip
shell
unzip [选项] 压缩文件名.zip
常用选项:
-v
: 不执行打包,显示压缩包内容-q
: 静默输出,不显示解压过程-d
: 指定解压路径