tar命令:压缩、解压的好工具

一、命令简介

  • 用途: 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 压缩效果还是很明显的。

Clip_2024-09-28_21-06-39

优点:节省的硬盘体积,减少了网络传输时的流量和时间。

缺点(代价):原本打包、解包可以秒完成。使用压缩后,需要消耗额外的算力和时间来完成压缩、解压过程。即便如此,多数时候,依然选择使用压缩。

3.2列出归档文件

有时我们希望看看 tar 包里面有些什么东西,而不是直接解开它,可以使用以下命令:

tar -tvf archive.tar

例如刚才打包的 tar 包,使用-tvf 就可以看到 tar 包中的文件列表:

Clip_2024-09-28_21-40-40

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 选项。

Clip_2024-09-28_22-57-44

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

Clip_2024-09-28_23-28-27

解压耗时:

  • gzip:5 秒
  • bz2:23 秒
  • 不压缩:1 秒

Clip_2024-09-28_23-33-43

3.4.3选择压缩选项
  • gzip压缩可以满足大多数情况:既可以压缩体积,也不用等待太久。
  • 不压缩可以秒打包、解包。
  • bzip2可以最大压缩体积。

3.5规范后缀

规范的后缀 .tar​、.tar.gz​、.tar.bz2 ​可以让人一眼分辨出应该使用哪个命令去解压缩包。

Linux 系统不以后缀名来决定文件类型,而是通过文件的 inode 信息来确定。inode 包含了文件的元数据,如文件的大小、创建时间、最后修改时间、权限等,以及一个指向文件数据块的指针。

3.6结语

tar​ 命令是在 Linux 系统中非常常用的工具,用于管理文件和目录的归档和解压缩。通过掌握 tar​ 命令的基本用法,您可以方便地打包和解压文件,进行文件备份和迁移等操作。

### tar 命令使用指南及常见问题解决方案 #### 1. tar 命令基本功能 `tar` 是 Linux 系统中用于归档文件的强大工具,可以将多个文件和目录打包成一个文件。通过结合不同的压缩程序(如 gzip、bzip2),还可以实现高效压缩[^1]。 #### 2. 打包与解包操作 以下是 `tar` 命令的基本用法: - **打包文件/目录(不压缩)** ```bash tar -cvf archive.tar file1 file2 dir1 ``` 该命令将 `file1`、`file2` 和 `dir1` 打包为 `archive.tar` 文件。选项解释: - `-c`:创建新的归档文件。 - `-v`:显示处理过程中的详细信息。 - `-f`:指定生成的归档文件名。 - **查看 tar 包内容** ```bash tar -tvf archive.tar ``` 使用此命令可以列出归档文件中的所有内容,包括文件名、大小、权限等信息。 - **解包 tar 文件** ```bash tar -xvf archive.tar ``` 将 `archive.tar` 中的内容解压到当前目录。选项解释: - `-x`:从归档文件中提取文件。 #### 3. 压缩解压缩 `tar` 可以与多种压缩工具结合使用,以下是一些常用组合: - **创建 gzip 压缩tar 包** ```bash tar -czvf archive.tar.gz file1 file2 dir1 ``` 选项解释: - `-z`:调用 gzip 进行压缩。 - **解压 gzip 压缩tar 包** ```bash tar -xzvf archive.tar.gz ``` - **创建 bzip2 压缩tar 包** ```bash tar -cjvf archive.tar.bz2 file1 file2 dir1 ``` 选项解释: - `-j`:调用 bzip2 进行压缩。 - **解压 bzip2 压缩tar 包** ```bash tar -xjvf archive.tar.bz2 ``` #### 4. 常见问题及解决方案 - **问题 1:无法找到 tar 命令** 如果系统提示找不到 `tar` 命令,可能是因为未安装相关工具。可以通过以下命令安装: ```bash sudo apt-get install tar # 对于 Debian/Ubuntu 系统 sudo yum install tar # 对于 CentOS/RHEL 系统 ``` - **问题 2:解压时文件权限错误** 在某些情况下,解压后的文件可能丢失原始权限或归属信息。可以在打包时添加 `-p` 选项以保留文件权限: ```bash tar -czpvf archive.tar.gz file1 file2 dir1 ``` - **问题 3:解压时覆盖已有文件** 默认情况下,`tar` 解压时会覆盖同名文件。如果需要避免覆盖,可以使用 `--keep-old-files` 选项: ```bash tar -xvf archive.tar --keep-old-files ``` #### 5. 示例代码 以下是一个完整的示例,展示如何打包并压缩一个目录: ```bash # 打包并压缩目录 tar -czvf backup.tar.gz /path/to/directory # 查看压缩包内容 tar -tvf backup.tar.gz # 解压到指定目录 tar -xzvf backup.tar.gz -C /destination/path ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵魂信息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值