锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. Linux压缩解压语法大全及示例演示

Linux压缩解压语法大全及示例演示

0
  • 软件开发
  • 发布于 2024-08-19
  • 0 次阅读
黄健
黄健

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


我本楚狂人,凤歌笑孔丘。
手持绿玉杖,朝别黄鹤楼。
五岳寻仙不辞远,一生好入名山游。
------《庐山谣寄卢侍御虚舟》



文章目录

  • Linux压缩解压语法大全及示例演示
    • 1. tar命令详解
      • 1.1 语法
      • 1.2 参数与描述
      • 1.3 举例
    • 2. gzip命令
      • 2.1 语法
      • 2.2 选项和含义
      • 2.3 举例
    • 3. unzip命令
      • 3.1 语法
      • 3.2 参数与含义
      • 3.3 举例
    • 4. zgrep命令
    • 5. tar命令2
      • 5.1 语法
      • 5.2 参数与描述
      • 5.3 举例
    • 6. gzip,zcat命令
      • 6.1 语法
      • 6.2 参数与描述
      • 6.3 举例
    • 7. bzip,bzcat命令
      • 7.1 语法
      • 7.2 参数和描述
      • 7.3 举例
    • 8. compress命令
      • 8.1 语法
      • 8.2 参数和描述
      • 8.3 举例
    • 9. dd命令
      • 9.1 语法
      • 9.2 参数和描述
      • 9.3 举例
    • 10. cpio命令
      • 10.1 语法
      • 10.2 参数和描述
      • 10.3 举例演示


Linux入门专栏
Linux入门学习指南
Linux入门学习指南(二)


Linux压缩解压语法大全及示例演示

1. tar命令详解

tar可以为文件和目录创建打包文件
tar可以在打包文件中变更文件或者想文件中加入新的文件

1.1 语法

tar打包文件的语法

tar [主选项+辅选项] 文件或者目录

使用该命令时,主选项必须有(告诉tar要做什么),辅选项是辅助使用,可以选用

1.2 参数与描述

主选项的参数和描述如下

参数描述
c创建新的档案文件,如果用户想备份一个目录或者一些文件,则需选择这个选项
r把存档的文件追加到档案文件的末尾
t列出档案文件的内容,查看已经备份的文件列表
u更新文件,新增的文件取代备份文件,若备份文件中找不到更新的文件,则把它追加到备份文件的最后
x从档案文件中释放文件

辅助选项的参数与描述如下

参数描述
b为磁带机设定的,其后跟一个数字,用于说明区块大小,系统预设值为20(20*512bytes)
f使用档案文件或者设备,这个选项通常是必须
k保存已经存在的文件,如我们把文件还原,在还原过程中,遇到相同的文件,不会进行覆盖
m在还原文件时,把所有文件的修改时间设定为现在
M创建多卷的档案文件,以便在几个磁盘中存放
v详细报告tar处理的文件信息,如无此选项,trar不报告文件信息
w每一步都要求确认
z用gzip来压缩或解压文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要用该选项进行解压

1.3 举例

把/test目录下包括其子目录的全部做备份,备份文件名为test.tar

tar cvf test.tar /test

把/test目录下包括其子目录的全部做备份,进行压缩,文件名为test.tar.gz

tar czvf test.tar.gz /test

把test.tar.gz文件还原并解压缩

tar xzvf test.tar.gz

查看usr.tar备份文件的内容,并以分屏方式显示在显示器上

tar tvf test.tar | more

用户在/dev/d0设备的软盘中创建一个备份文件,并将/test目录中的所有文件拷贝到备份文件中

tar cf /dev/d0 /test

恢复设备磁盘中的文件,使用xf选项

tar xf /deb/d0

若备份文件的大小超过了设备可用的存储空间,如果是软盘,可创建一个多卷的tar备份文件,M选项指示tar命令提示你使用新的存储设备
当使用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒再放入一张新的磁盘,此时即可把tar档案存入几张磁盘中

tar cMf /dev/d0 /test

要恢复几张磁盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令,必要时提醒放入另一张软盘

tar xMf /dev/d0

2. gzip命令

2.1 语法

语法如下

gzip [选项] 压缩或解压的文件名

2.2 选项和含义

参数与描述如下

参数描述
-c将输出写到标准输出上,保留原有文件
-d将压缩文件解压
-l对每个压缩文件显示下列字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字
-r递归式查找指定目录并压缩其中的所有文件或者解压
-t测试,检查压缩文件是否完整
-v对每个压缩和解压的文件显示文件名和压缩比
-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

2.3 举例

目录/test下有文件t.txt,y.txt,z.py

把/test目录下的每个文件压缩成.gz文件
首先进入/test目录下

cd /test

压缩当前目录的所有文件

gzip *

查看当前目录的文件内容

ls

可以看到所有文件均被压缩

把上面例子中压缩的文件解压,并列出详细的信息

gzip -dv *

然后查看解压后的文件

ls

详细显示压缩后的文件信息,不解压

gzip -l *

压缩一个tar备份文件,压缩后的扩展名为.tar.gz

gzip test.tar

压缩后查看文件

ls

文件名变为test.tar.gz

3. unzip命令

3.1 语法

语法如下

unzip [选项] 压缩文件名.zip

3.2 参数与含义

参数与描述如下

参数描述
-x文件列表 解压缩文件,不包括指定的file.文件
-v查看压缩文件目录,不解压
-t测试文件有无损坏,不解压
-d目录 把压缩文件解压到指定目录下
-z只显示压缩文件的注解
-n不覆盖已经村在的文件
-o覆盖已存在的文件且不要求用户确认
-j不重建文档的目录结构,把所有文件解压到同一个目录下

3.3 举例

将压缩文件在当前目录下解压

unzip 压缩文件名.zip

将压缩文件在指定目录下解压,如果已有相同的文件存在,则不覆盖原先的文件

unzip -n 压缩文件名.zip -d 指定的目录

查看压缩文件目录,不解压

unzip -v 压缩文件名.zip

4. zgrep命令

与grep命令用法相似
在压缩文件中寻找匹配的正则表达式
如果想查看某个压缩文件中有没有哪些内容,可以用zgrep命令

5. tar命令2

5.1 语法

语法如下

tar [-cxtzjvfpPN] 文件与目录 ...

5.2 参数与描述

参数与描述如下

参数描述
-c建立一个压缩文件的参数指令(create)
-x解开一个压缩文件的参数指令
-t查看tarfile里面的文件。注:命令中c/x/t三个参数只能使用其一,不可同时使用,原因是不可能同时压缩与解压
-z是否同时具有gzip的属性,即是否需要用gzip压缩
-j是否同时具有bzip2的属性,即是否需要用bzip2压缩
-v压缩的过程中显示文件,该参数常用,但不建议用在背景执行过程
-f使用档名,注意,在f之后要立即接档名,不要再加参数。如,使用命令tar -zcvfP tfile sfile该写法错误,正确写法为tar -zcvPf tfile sfile
-p使用源文件的原来属性,属性不会依据使用者而变
-P可以使用绝对路径来压缩
-N比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中
--excludeFILE 在压缩的过程中,不要讲FILE打包

5.3 举例

将整个目录下的文件全部打包

tar -cvf 打包文件名.tar 待打包目录
tar -zcvf 打包文件名.tar 待打包目录
tar -jcvf 打包文件名.tar.bz2 待打包目录

注意: 参数f之后的文件档名为自定义的,习惯用.tar作为后缀 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file 如果加j参数,则以.tar.bz2来作为附档名
执行上述命令会提示信息如下

tar:Removing leading `/' from member names

这是关于绝对路径的特殊设定

查看上述压缩文件内容有那些文件

tar -ztvf 压缩文件名.tar.gz

由于使用gzip压缩,所以查看这个tar文件内的文件时,要加上z参数

将压缩文件解压在指定目录下
进入指定目录

cd 目录

解压压缩文件

tar -zxvf 压缩文件全路径名.tar.gz

注
我们可以将压缩文件在任何地方解压,首先进入任意目录位置,然后执行解压命令,压缩文件内容就会解压到当前目录中

在指定目录下,解压压缩文件中的某个文件
进入指定目录

cd 目录

解压压缩文件中的某个文件

tar -zxvf 待解压文件名.tar.gz 需要解压的文件名

如将压缩文件test.tar.gz中的test/name文件解压
则执行命令tar -zxvf /test.tar.gz test/name

可通过tar -ztvf查看压缩文件的内容文件名

将指定目录下的所有文件压缩,并保存其权限

tar -zxvpf 压缩文件名.tar.gz 目录

注,一定要加-p保留原本文件属性

在指定目录中,压缩比某日期新的文件

tar -N 'yyyy/mm/dd' -zxvf 压缩文件名.tar.gz 目录

如在/test目录中,比2024/06/17新的文件进行压缩

tar -N '2024/06/17' -zcvf test.tar.gz /test

压缩目录/test1,/test2,但不要/test1/test.txt

tar --exclude /test1/test.txt -zcvf test.tar.gz /test1/* /test2

将目录1打包后解压到另一个目录2中,不产生文件

cd 目录1
tar -cvf - 目录2 | tar -xvf -

注
用法与cp相似

cp -r 目录2 目录1

6. gzip,zcat命令

6.1 语法

语法如下

gzip [-cdt#] 待压缩文件名

或

zcat 压缩文件名.gz

6.2 参数与描述

参数与描述如下

参数描述
-c将压缩的资料输出到屏幕上,可透过资料流重导向来处理
-d解压缩的参数
-t可以用来检验一个压缩文件的一致性,看文件有无错误
-#压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,预设值是-6

6.3 举例

将文件复制到指定目录1并用gzip压缩
先进入目标目录下

cd 目录1

复制文件到当前目录

cp 文件全路径名 .

压缩文件

gzip 文件名

此时文件后缀变为.gz

将压缩后的文件内容读取出来

zcat 压缩文件名.gz

此时屏幕会显示压缩文件解压后的文件内容

将压缩文件解压

gzip -d 待解压文件名.gz

将解压的文件用最佳压缩比压缩,并保留原本的文件

gzip -9 -c 待压缩文件名 > 压缩文件名.gz

7. bzip,bzcat命令

7.1 语法

语法如下

bzip2 [-cdz] 文件名

或

bzcat 压缩文件名.bz2

7.2 参数和描述

参数描述如下

参数描述
-c将压缩过程产生的资料输出到屏幕
-d解压的参数
-z压缩的参数
-#与gzip相同,计算压缩比的参数,-9最佳,-1最快

7.3 举例

将文件用bzip压缩

bzip2 -z 待压缩文件名

将压缩文件内容读取

bzcat 压缩文件名.bz2

此时解压后的内容会显示在屏幕上

将文件解压

bzip2 -d 待解压文件名.bz2

将文件以最佳压缩比压缩,并保留源文件

bzip2 -9 -c 待压缩文件 > 压缩文件名.bz2

8. compress命令

8.1 语法

语法如下

compress [-dcr] 文件或目录

8.2 参数和描述

参数描述
-d用来接压缩的参数
-r可以连同目录下的文件也同时给予压缩
-c将压缩资料输出为标准输出

8.3 举例

将文件复制到指定目录1,并压缩
进入指定目录1

cd 目录1

复制文件当前目录

cp 文件全路径名

压缩文件

compress 待压缩文件名

查看压缩后的文件详细信息

ls -l

将压缩文件解压

compress -d 压缩文件名.Z

将文件压缩成另一个文件来备份

compress -c 待压缩文件 > 压缩文件名.back.Z

查看压缩后的列表

ll *

-c参数将压缩过程输出到屏幕

9. dd命令

9.1 语法

语法如下

dd if="input_file" 
of="outout_file" bs="block_size" count="number"

9.2 参数和描述

参数和描述如下

参数描述
if指input file
of指output file
bsblock的大小,没有设定时,预设为512bytes
count指多少个bs

9.3 举例

将文件/test/name备份到压缩文件/x/name.back中

dd if=/test/name
of=/x/name.back
3+1 records in
3+1 records out

查看文件

ll /test/name
/x/name.back

注意:由于未设定bs,预设的bs为512bytes,所以3+1表示的就是3个完整的512bytes和一个不满512bytes的block

备份/test/ddd的MBR

dd if=/test/ddd
of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out

MBR为512bytes,放在硬盘第一个部分,这个方式可以将MBR的内容资料都记录下来

将整个/test/ddd partition备份

dd if=/test/ddd
of=/some/path/filename

这个指令将整个partition的内容备份下来 of后面接的内容必须不在/test/ddd目录中,否则读不完

10. cpio命令

10.1 语法

语法如下

cpio -covB > [file|device]
cpio -icduv

10.2 参数和描述

参数描述如下

参数描述
-o将资料copy输出到文件或者设备
-i将资料从文件或设备中拷贝出来到系统当中
-t查看cpio建立的文件或装置的内容
-c一种较新portable format方式储存
-v让储存的过程中文件名称可以在屏幕上显示
-B让预设的blocks可以增加到5120bytes,预设值是512bytes,这样的好处是可以让大文件的存储速度加快
-d自动建立目录,由于cpio的内容可能不是在同一个目录内,反备份的过程会有问题,这时加上-d参数可以自动将需要的目录创建
-u自动将较新的文件覆盖较旧的文件

10.3 举例演示

将所有系统上的资料写入磁带机内

find / -print | cpio -covB > /dev/st0

一般情况下,使用SCSI界面的磁带机,代号是/dev/st0

检查磁带机上有什么文件

cpio -icdvt
cpio -icdvt /test/content

第一个动作是将磁带机内的文件列出到屏幕,第二个动作将所有的文件记录到/test/content文件

将磁带上的资料还原回来

cpio -icduv

一般情况下,使用SCSI界面的磁带机,代号是/dev/st0

将/etc下的所有文件备份到/root/etc.cpio

find /etc -type
f | cpio -o > /root/etc.cpio

感谢阅读,祝君暴富!

原文链接: https://hanshan.blog.csdn.net//article/details/139770762

标签: #Linux 85 #软件开发 1171
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.