阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux的常用命令-解压缩篇

363次阅读
没有评论

共计 3849 个字符,预计需要花费 10 分钟才能阅读完成。

今天小编要跟大家分享的文章是关于 Linux 的常用命令 - 解压缩篇。Linux 常用命令中,有很多用于对文件的压缩或解压,本文将介绍这些解压缩命令中不常见却非常实用的用法。Linux 入门 新手和正在 Linux 学习 的小伙伴快来看一看吧,希望能够对大家有所帮助!

Linux 的常用命令 - 解压缩篇

tar

tar 是 Linux 中最常用的解压缩命令。tar 命令可用于处理后缀名为 tar,tar.gz,tgz,.tar.Z,tar.bz2 的文件。

涉及参数说明:

-c 建立新的压缩文件

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持 gzip 解压文件

-j 支持 bzip2 解压文件

-v 显示操作过程

-k 保留源有文件不覆盖

-C 切换到指定目录

-f 指定压缩文件

–delete 删除包中文件

–strip-components 去除目录

–add-file 向包中添加文件

一、压缩

1、归档 tar 包,不压缩

tar -cvf test.tar test1.log test2.log #归档多个文件

tar -cvf test.tar test/* #归档 test 目录下所有文件

tar -cvf test.tar *.log #归档所有以.log 结尾的文件

由于这种方式不会进行压缩,仅做了归档,因此速度极快,同时占用空间也较大。

2、归档并压缩为 tar.gz 或 tar.bz2

这种方式打包对文件进行了压缩:

tar -zcvf test.tar.gz file1 file2 #打包,并以 gzip 压缩

tar -jcvf test.tar.bz2 file1 file2 #打包,并以 bzip2 压缩

3、查看压缩包中的文件

如果不想解压,只是想查看压缩包中的文件内容,可以使用 - t 参数:

tar -tvf test.tar #可查看 test 包中有哪些文件

4、打包后删除源文件

有时候再打包后可能需要删除源文件,但一个个删除显得麻烦,我们可以使用 –remove-files 选项:

tar -zcvf test.tar.gz test.log –remove-files

5、打包除指定目录或文件以外的文件

对于某些目录下的文件,可能只需要打包部分文件,因此可以使用 –exclude 选项排除一些不需要打包的文件:

tar -zcvf test.tar.gz –exclude=test/*.log test/* #打包 test 目录下所有文件,排除以.log 结尾的文件

这里用到了 –exclude 选项,支持通配符和正则表达式,因此也非常强大。

6、向压缩包中更新文件

例如,压缩包中已经打入了 test 以及其他文件,现在你只想更新压缩包中的 test 文件,那么你可以使用 –add-file 选项:

tar -tf test.tar –add-file=test #只针对 tar 包

7、向 tar 包中增加文件

向 tar 包中增加文件可使用 - r 参数:

tar -rf test.tar testfile #在 test.tar 包中增加文件,只针对 tar 包

8、删除压缩包中的文件

在不解压的情况下,可使用 –delete 选项删除包中的文件:

tar –delete -f test.tar test1 #从 test.tar 中删除 test1 文件

二、解压

1、解压 tar.gz 和 tar 包到当前目录

tar -xvf test.tar.gz

tar -xvf test.tar

2、解压到指定目录

tar -xvf test.tar.gz -C dir

tar -xvf test.tar -C dir

3、解压包中指定的文件

例如 test.tar.gz 包中文件情况如下:

1.txt

log/

log/1.log

log/2.log

log/2.log

log/4.log

log/5.log

如果我们只需要解压出 log 目录下的 1.log,只需要执行下面的命令:

tar -xvf test.tar.gz log/1.log

tar -xvf test.tar.gz log/1.log -C test #将 1.log 解压到 test 目录

4、解压时去掉目录结构

压缩包中的文件可能存在多级目录,常规方式解压出来后,对应目录也会存在。如果只想要压缩包的文件,可以去掉目录结构(注意:同一文件夹下文件名不能重):

tar -xvf test.tar.gz –strip-components=1 #去掉一层目录

5、解压时不覆盖原文件

当前目录可能已经存在包中的文件,如果不想解压出来的文件覆盖当前已存在的文件,可使用 - k 参数(会抛出错误信息):

tar -xvkf test.tar.gz

特别提醒

前面所提到的解压或者压缩带的 f 参数需要放在最后,因为它指定了压缩包名字,否则会出现解压或压缩失败。

zip/unzip

zip 和 unzip 命令主要用于处理 zip 包。

一、压缩

涉及参数说明:

-d 从压缩文件内删除指定的文件。

-f 此参数的效果和指定 ”-u” 参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。

-j 只保存文件名称及其内容,而不存放任何目录名称。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-u 更换较新的文件到压缩文件内。

-v 显示指令执行过程或显示版本信息。

-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在 UNIX 之类的系统下有效。

– < 压缩效率 > 压缩效率是一个介于 1 - 9 的数值。

1、压缩文件

zip -r test.zip test/ #打包 test 目录下的文件

zip -rj test.zip test/ #打包 test 目录下文件,且压缩包不带 test 目录

2、指定压缩率打包文件

zip -r8 test.zip test/* #数值 (1-9) 越大,压缩率越高,耗时越长

3、打包符号链接文件

前面的命令只能打包普通文件,如果想要打包符号链接文件,则需要使用参数 -y:

zip -ry test.zip test

4、向压缩包中增加或更新文件

有时候需要向压缩包中增加文件,但又不想重新解压打包,可以使用参数 -u:

zip -u test.zip test2 #向 test.zip 包中增加 test2 文件

5、压缩时加密

压缩时如果需要对压缩包进行加密,可使用 - P 参数:

zip -r test.zip test1 test -P 66666 #使用密码 66666 加密

6、删除压缩包的特定文件

zip -d test.zip test #删除 test.zip 包中的 test 文件

二、解压

涉及参数说明:

-l 显示压缩文件内所包含的文件

-j 只保存文件名称及其内容,而不存放任何目录名称。

-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该

-v 显示指令执行过程或显示版本信息。

-d 指定解压目录,目录不存在会创建

1、查看压缩包中的文件信息

unzip -l test.zip #可以看到压缩包中的文件名,日期等信息

unzip -v test.zip #查看更多信息,例如 crc 校验信息等

2、解压压缩包

unzip -o test.zip -d dir #讲 test.zip 解压到 dir 目录

3、解压包中指定的文件

如果不知道需要解压的文件名,可先查看包中的文件,然后使用下面的方法:

unzip -o test.zip “1.log” -d dir #解压包中的 1.log 文件到 dir 目录

unzip -o tet.zip “*.log” -d dir #解压包中所有的 log 文件

4、解压时去掉目录结构

压缩包中有多层目录结构,普通解压仍然会保留目录结构,如果只想要压缩包中的文件,可以使用 - j 参数:

zip -oj test.zip -d ./temp

5、解压 jar 包

jar 包是 java 归档包,但同样可用 unzip 解压查看里面的文件:

unzip -o java.jar -d dir

gzip

涉及参数说明:

-k 保留源文件

-d 解开压缩文件

-r 递归处理,将指定目录下的所有文件及子目录一并处理

-v 显示指令执行过程

tar 命令带有 - z 参数,并且打包成 tar.gz 文件时,便调用 gzip 进行了压缩。gzip 对文本的压缩率约有 60%~70%,压缩包文件常以 gz 为后缀。使用 - k 参数保留源文件:

gzip -k ./* #当前目录下所有文件进行压缩,每个文件一个 gz 包

gzip -rkv ./* 递归压缩

解压也很简单:

gzip -dv test.gz

bzip2

tar 命令使用 - j 参数将文件打包为 tar.bz2 时,便调用了 bzip2 进行压缩。bzip2 压缩或解压后,会将源文件删除。如果需要保留源文件,可使用 - k 参数:

bzip2 -zk test #压缩 test 文件

bzip2 -dk test.bz2 #解压

rar/unrar

rar 和 unrar 命令并非 Linux 发行版自带命令,需要另外安装。常见用法如下:

rar a test.tar test #将 test 文件压缩为 test.tar

rar e test.rar #解压 test.tar

unrar x test.rar #解压 test.tar

压缩率比较

压缩率一般来说:

tar.bz2>tar.gz>zip>tar

压缩率越高,压缩以及解压的时间也就越长。

总结

对文件进行压缩能够节省磁盘空间,进行网络传输时,也能节省带宽,但是需要注意的是,空间和时间是需要根据实际应用进行权衡的。解压缩命令较多,为避免在其他平台使用不便,可选择常用命令进行压缩文件。

以上就是小编今天为大家分享的关于 Linux 的常用命令 - 解压缩篇的文章,希望本篇文章能够对正在从事 Linux 相关工作的小伙伴们有所帮助。想要了解更多 Linux 相关知识记得关注 马哥教育 官网。最后祝愿小伙伴们工作顺利!

声明:文章来源于网络,侵删!

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计3849字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7800624
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...