Linux Command:tar
Posted on Wed, 25 Dec 2024 13:58:34 +0800 by LiangMingJian
概述
在 Linux 中,打包和压缩是两个概念。
这是因为 Linux 中很多压缩程序只能针对一个文件进行压缩,因此当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包,然后再用压缩程序进行压缩。
- 打包是指将一大堆文件或目录变成一个总的文件
- 压缩则是将一个大的文件通过一些压缩算法变成一个小文件
tar 命令本质是一个打包指令,为 linux 的文件和目录创建档案。
利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,然后再通过其他工具参数的使用,将这个打包文件进行压缩。
tar 支持的参数
**主选项(必须三选一使用)**:
-c:创建新的归档文件-x:从归档文件中提取文件-t:列出归档文件的内容
辅助功能选项(可选):
-z:使用 gzip 进行压缩或解压(生成 .tar.gz 文件)-j:使用 bzip2 进行压缩或解压(生成 .tar.bz2 文件)-J:使用 xz 进行压缩或解压(生成 .tar.xz 文件)-v:显示操作过程的详细信息-f:指定归档文件名,必须是最后一个参数-C:解压到指定目录--exclude:排除特定文件或目录
以 .tar 格式打包文件
打包
tar -cvf FileName.tar DirName
解包
tar -xvf FileName.tar
使用 tar 解压文件
在现代版本中,tar命令支持自动识别压缩格式,因此可以直接使用 xf 参数进行解压,而不用指定解压工具。
tar -xf archive.tar.xz
tar -xf archive.tar.gz
以 .gz 格式打包并压缩文件
压缩
tar -zcvf FileName.tar.gz DirName
加密压缩
tar -zcvf - file | openssl des3 -salt -k password -out /path/to/file.tar.gz
解压
tar -zxvf FileName.tar.gz
加密解压
openssl des3 -d -k password -salt -in FileName.tar.gz | tar zxvf -
以 .bz2 格式打包并压缩文件
压缩
tar -jcvf FileName.tar.bz2 DirName
解压
tar -jxvf FileName.tar.bz2
tar -jxvf FileName.tar.bz
以 .xz 格式打包并压缩文件
压缩
tar -Jcvf FileName.tar.xz DirName
解压
tar -Jxvf FileName.tar.xz
其他的压缩工具
# .zip
unzip FileName.zip # 解压
zip FileName.zip DirName # 压缩
# .rar
rar -x FileName.rar # 解压
rar -a FileName.rar DirName # 压缩
# .gz
gzip -d FileName.gz # 解压
gzip FileName # 压缩
# .bz2
bzip2 -d FileName.bz2 # 解压
bzip2 -z FileName # 压缩
# .xz
xz -d filename.xz # 解压
xz filename # 压缩