一、命令简介
用途:
tar
命令用于创建归档文件(tarball),以及从归档文件中提取文件。标签: 文件管理,归档。
特点:
- 归档文件可以保留原始文件和目录的层次结构,通常使用
.tar
或.tar.gz
作为文件扩展名。 - 对打包文件进行压缩以节省空间或传输带宽。
- 归档文件可以保留原始文件和目录的层次结构,通常使用
二、命令参数
2.1命令格式
tar [选项] [归档文件] [文件或目录]
2.2选项和参数
选项:
-
-c
:创建归档文件(Create) -
-x
:从归档文件中提取文件(eXtract) -
-v
:显示详细信息(Verbose) -
-f
:指定归档文件的名称(File) -
-z
:使用 gzip 压缩或解压缩(gzip) -
-j
:使用 bzip2 压缩或解压缩(bzip2) -
-r
:向归档文件中追加文件(append) -
-t
:列出归档文件的内容(List)
-
参数:
-
归档文件
:要创建或操作的归档文件的名称。 -
文件或目录
:要添加到归档文件中或从中提取的文件或目录。
-
三、命令示例
3.1创建归档文件
简单的示例:通过以下命令将文件 file1 和 file2 ,文件夹 catalog 打包到 archive.tar
tar -cvf archive.tar file1 file2 catalog/
压缩:通常,使用 -z 选项压缩 tar 包的体积。接下来我们将/bin 目录下所有内容打包。
#仅打包,不压缩
sudo tar -cvf archive.tar /bin/*
#打包且压缩
sudo tar -czvf archive.tar.gz /bin/*
对比:不压缩为 500MB+,压缩为 200MB+,可见 gz 压缩效果还是很明显的。
优点:节省的硬盘体积,减少了网络传输时的流量和时间。
缺点(代价):原本打包、解包可以秒完成。使用压缩后,需要消耗额外的算力和时间来完成压缩、解压过程。即便如此,多数时候,依然选择使用压缩。
3.2列出归档文件
有时我们希望看看 tar 包里面有些什么东西,而不是直接解开它,可以使用以下命令:
tar -tvf archive.tar
例如刚才打包的 tar 包,使用-tvf 就可以看到 tar 包中的文件列表:
3.3解压缩归档文件
解包到当前目录
tar -xvf archive.tar
# tar.gz
tar -czvf archive.tar.gz
解包到指定目录
tar -xvf archive.tar -C /path/to/target/directory
例如,将刚才打包的文件解包到 ./dir-test
目录,目录必须先创建。
mkdir dir-test
tar -xvf archive.tar -C dir-test
如果不想看解包过程,就不要使用-v 选项。
3.4测试不同压缩选项
只是片面的测试,不是综合测试。
3.4.1测试
- -z 选项(已学):使用 gzip 压缩、解压
- -j 选项:使用 bzip2 压缩、解压
用法是类似的,-z 换成 -j 即可,如下(顺便瞧瞧两种压缩方式的效率,time 命令统计执行时间)
# 打包
## 不压缩
time tar -cf new.tar /bin/*
## gzip压缩
time tar -czf new.tar.gz /bin/*
## bzip2压缩
time tar -cjf new.tar.bz2 /bin/*
# 创建文件夹,用来装解压文件
mkdir 文件夹 文件夹1-gz 文件夹2-bz2
# 解包
## 不压缩
time tar -xf new.tar -C 文件夹
## gzip压缩
time tar -xzf new.tar.gz -C 文件夹1-gz
## bzip2压缩
time tar -xjf new.tar.bz2 -C 文件夹2-bz2
3.4.2测试结果
压缩耗时:
- gzip:28 秒
- bz2:51 秒
- 不压缩:1 秒
文件大小:
- gzip:213 MB
- bz2:197 MB
- 不压缩:590 MB
解压耗时:
- gzip:5 秒
- bz2:23 秒
- 不压缩:1 秒
3.4.3选择压缩选项
- gzip压缩可以满足大多数情况:既可以压缩体积,也不用等待太久。
- 不压缩可以秒打包、解包。
- bzip2可以最大压缩体积。
3.5规范后缀
规范的后缀 .tar
、.tar.gz
、.tar.bz2
可以让人一眼分辨出应该使用哪个命令去解压缩包。
Linux 系统不以后缀名来决定文件类型,而是通过文件的 inode 信息来确定。inode 包含了文件的元数据,如文件的大小、创建时间、最后修改时间、权限等,以及一个指向文件数据块的指针。
3.6结语
tar
命令是在 Linux 系统中非常常用的工具,用于管理文件和目录的归档和解压缩。通过掌握 tar
命令的基本用法,您可以方便地打包和解压文件,进行文件备份和迁移等操作。
本文共 890 个字数,平均阅读时长 ≈ 3分钟
评论 (0)