Linux (二): 压缩指令 tar, zip

本文介绍如何使用tar命令进行文件归档及压缩,并演示了如何利用zip命令压缩与解压文件。详细解释了tar命令的常用选项,如创建归档文件、查看归档内容、提取文件等。

tar

以前每次使用 Linux 进行解压的时候都得重新上网查找一遍指令, 尤其是 tar 指令, 动不动就四五个 flag 很烦人, 现在就把它学会了!

tar 指令用于把文件归档和压缩, 归档就是将所有文件合并到一个文件里面
这个文件 (.tar) 和文件夹的区别是: 文件夹只是一个指针, 指向了它所包含的文件, 而 .tar 文件则是真真实实地包含了它所包含的文件. 因此在进行网络传输的时候, 无法传输文件夹 (因为文件夹本身没有数据), 只能传输归档文件

而归档本身并没有压缩, 只是单纯地将文件打包在一起, 好在可以添加一个 flag 来方便地完成压缩.

归档命令

tar -cf foo.tar 1.jpg 2.png 3.txt somedir

该命令有两个 flag:

  • -c 表示 create: 创建归档文件
  • -f 表示 file: 告诉 tar 指令你要操作 (创建) 的归档文件的名字
  • 后面的所有名字是你要归档的文件或文件夹的名字
    f必须是最后一个 flag, f 后面必须紧跟要操作的归档文件的名字
    很好记, c = create

你也可以添加flag v (verbose, 只显示归档的文件名) 或 vv (very verbose, 还显示所有文件的操作权限和创建日期等) 来显示归档的文件, 如

tar -cvf foobar.tar foo.png tar.jpg

查看

通过键入下列指令查看一个 tar 文件里都有什么文件

tar -tf foobar.tar

其中 -t 表示 list
你也可以加一个 -v 来查看更相信的操作权限, 创建信息等内容

tar -tvf foobar.tar

提取

tar -xf foobar.tar

其中 -x 表示 extract (提取)
如果想要提取到指定目录, 添加 -C (大写 C)

tar -xf foobar.tar -C /some/dir

压缩

tar 指令支持多种压缩算法, 最常见的是 gzip (文件名是 foobar.tar.gz)

tar -czf foobar.tar.gz foo.txt bar.jpg

其中 -z 表示 使用 gzip 算法进行压缩
解压和上述一样, 即

tar -xf foobar.tar.gz

zip

压缩

有时候压缩文件是 zip 格式的, 这时候我们就需要 zip 命令:

zip foobar.zip foo.txt bar.txt

如果你想压缩文件夹里的内容, 需要加上 -r 来表示递归压缩

zip -r foo.zip some_dir

解压

unzip foobar.zip

如果你想解压的指定目录, 可以添加 -t, 如

unzip foobar.zip -t /this/is/some/dir
<think>嗯,用户想了解如何使用tarzip命令在Linux压缩d1目录。首先,我得确认自己对这两个命令的掌握程度。tar通常用于打包,而zip则是常见的压缩工具。不过tar本身不压缩,需要加上压缩选项,比如z或j来调用gzip或bzip2。而zip直接压缩。 记得tar的基本用法是tar [选项] 目标文件 源目录。对于gzip压缩,应该是tar -czvf,这样生成.tar.gz文件。而用bzip2的话是-jcvf生成.tar.bz2。可能需要说明这些选项的含义,比如c是创建,v是显示过程,f是指定文件名。用户可能不清楚这些参数,得解释清楚。 然后是zip命令,通常需要加上-r来递归处理目录,否则只会压缩空目录。所以正确的命令应该是zip -r output.zip d1/。这里需要提醒用户注意-r参数的重要性,否则可能导致压缩不完整。 还要注意目录后面的斜杠问题,比如tar命令中是否需要在目录名后加斜杠。一般来说,tar会自动处理目录内容,但最好明确路径是否正确。用户可能容易在这里出错,比如忘记加目录名或者路径错误,导致打包错误。 另外,解压方面也需要简单提及,这样用户知道如何解压他们生成的文件。比如tar的解压命令是tar -xzvf,而zip则是unzip。可能用户后续需要这些信息,所以虽然问题主要是压缩,但提供解压方法会增加回答的实用性。 还要考虑不同压缩格式的优缺点,比如tar.gz和tar.bz2在压缩率与速度上的差异,zip的跨平台性更好。用户可能不清楚该选择哪种格式,可以给出建议,比如内部使用常用tar.gz,需要与Windows共享用zip。 另外,需要提醒用户确保对d1目录有读取权限,否则压缩会失败。可能新手会遇到权限问题,但问题中没有提到,所以可能不需要深入,但可以稍微提一下。 最后,结构要清晰,分步骤说明每个命令,并给出示例,这样用户能一步步跟着操作。同时保持语言简洁,避免信息过载。可能需要检查每个命令的正确性,比如tar的参数顺序是否正确,f后面必须紧跟文件名,这些细节容易出错,需要强调。</think>以下是使用 `tar` 和 `zip` 命令压缩 `d1` 目录的详细步骤: --- ### 一、使用 `tar` 命令压缩 `tar` 是 Linux 常用的归档工具,需配合压缩算法(如 `gzip` 或 `bzip2`)实现压缩。 #### 1. 压缩为 `.tar.gz` 格式(推荐) $$ tar -czvf d1.tar.gz d1/ $$ - **参数说明** - `-c`: 创建新归档 - `-z`: 使用 `gzip` 压缩 - `-v`: 显示压缩过程 - `-f`: 指定输出文件名 #### 2. 压缩为 `.tar.bz2` 格式(更高压缩率) $$ tar -cjvf d1.tar.bz2 d1/ $$ - `-j`: 使用 `bzip2` 压缩 --- ### 、使用 `zip` 命令压缩 `zip` 是跨平台兼容的压缩工具,适合与 Windows 系统共享文件。 #### 1. 压缩为 `.zip` 格式 $$ zip -r d1.zip d1/ $$ - **参数说明** - `-r`: 递归压缩目录内容 --- ### 三、验证压缩文件 检查压缩文件内容是否完整: ```bash # 查看 .tar.gz 文件内容 tar -tzvf d1.tar.gz # 查看 .zip 文件内容 unzip -l d1.zip ``` --- ### 四、解压方法 #### 1. 解压 `.tar.gz` 文件 $$ tar -xzvf d1.tar.gz $$ #### 2. 解压 `.zip` 文件 $$ unzip d1.zip $$ --- ### 五、关键注意事项 1. **路径问题**:确保执行命令时路径正确(例如 `d1/` 是当前目录下的子目录)。 2. **保留权限**:默认 `tar` 会保留文件权限,`zip` 需要额外参数(如 `-X` 保留 UID/GID)。 3. **性能对比**: - `.tar.gz`: 压缩速度快,通用性强 - `.tar.bz2`: 压缩率高,但速度慢 - `.zip`: 适合跨平台共享 按需选择合适的压缩格式即可!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值