博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux系统压缩与解压
阅读量:4181 次
发布时间:2019-05-26

本文共 1570 字,大约阅读时间需要 5 分钟。

Linux系统下面的文件虽然有扩展名,但是这些扩展名没有特殊意义。压缩文件中这些特殊的命名方式可以帮助我们了解文件的压缩和打包方式。

Linux系统常见的压缩文件扩展名:
*.Z :compress程序压缩文件
*.zip :zip程序压缩的文件
*.gz :gzip程序压缩的文件
*.bz2 :bzip2程序压缩的文件
*.xz :xz程序压缩的文件
*.tar.gz :tar程序打包的文件,没有压缩。
*.tar.bz2 :tar程序打包的文件,并且经过bzip2程序压缩
*.tar.xz :tar程序打包的文件,并且经过xz程序压缩。

一、压缩命令

Linux系统中最常见的压缩命令是gzip、bzip2、xz。

1、gzip

其中gzip又是应用最广的一个命令。目前gzip可以解开compress、zip、gzip等软件压缩的文件,gzip压缩的文件为*.gz。

命令格式:

gzip [-cdtv#] 文件名
参数说明:
-c:将压缩的数据输出到屏幕上,可以通过数据重定向来处理。
-d:解压缩
-t:可以用来检验一个压缩文件的一致性,看文件有无错误
-v:可以显示出原文件/压缩文件的压缩比
-#:#为数字,代表压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,-6是默认值。
在默认状态下,原本的文件被压缩成*.gz文件后,源文件就不存在了。
实例:我们发现main.c文件被压缩后只有一个压缩文件,原文件已经不在了。
在这里插入图片描述
在这里插入图片描述
zcat/zmore/zless:可以读取压缩文件的内容。
zgrep:查找压缩文件中的关键词

2、bzip2

bzip2比gzip的压缩比更好。压缩的文件为*.bz2.

命令格式:

bzip2 [-cdkzv#] 文件名
参数说明:
-c/d/v/# 和gzip的参数意义一样
-k:保留原始文件,而不会删除原始的文件。
-z:压缩的参数(默认值,可以不加)
实例:压缩后原文件还在。
在这里插入图片描述
-bzcat/bzmore/bzless:可以读取压缩文件的内容
-bzgrep:

3、xz

xz比bzip2的压缩比更好,压缩的文件为*.xz。

命令格式:

xz [-dtlkc#] 文件名
参数说明:
-l:列出压缩文件的相关信息

-xzcat/xzmore/xzless:可以读取压缩文件的内容

-xzgrep

二、打包命令tar + 压缩

在前面提到的压缩命令只能针对单一的文件进行压缩,所以对多文件的文件夹或者目录要先打包,然后再进行压缩。
Linux中的打包命令就是tar ,tar可以将多个目录或文件打包成一个大文件。同时和上述的压缩命令结合起来,在进行压缩。tar命令的选项和参数很多,下面列举几种举例,更多的用法可以在终端中通过man tar命令进行查看。

  • tar [-z | -j | -J] [cv] [-f 待建立的新文件名] filename :打包并压缩文件
  • tar [-z | -j | -J] [tv] [-f 已有的tar文件名] :查看文件名
  • tar [-z | -j | -J] [xv] [-f 已有的tar文件名] :解压缩
    参数说明:
    -z: 通过gzip程序进行压缩/解压,此时的文件名最好为 *tar.gz
    -j: 通过bzip2程序进行压缩/解压,此时的文件名最好为 *tar.bz2
    -J: 通过xz程序进行压缩/解压,此时的文件名最好为 *tar.xz
    (以上三个参数不能同时出现,也就是说压缩/解压只能选用一种方式)
    -c: 建立打包文件,可以搭配-v来查看被打包的文件名(filename)
    -t: 查看打包文件的内容含有哪些文件名,重点在查看文件名
    -x: 解包或解压,可以搭配-C在特定目录解压
    (以上三个参数不能同时出现在一条命令中)
    在这里插入图片描述

转载地址:http://nwhai.baihongyu.com/

你可能感兴趣的文章
《C++特性》之引用类型
查看>>
fflush(stdin)在gcc编译器中不起作用?
查看>>
《Android系统学习》第八章:Android gtest
查看>>
《Android系统学习》第九章:Android模拟器编译
查看>>
《Android系统学习》第十章:Android消息处理、消息循环和消息队列
查看>>
《Android系统学习》第十一章:Android应用程序Activity组件分析
查看>>
Android4.2 Input子系统
查看>>
《C++面向对象》结构体继承
查看>>
《tiny6410裸机程序》第二章:LED跑马灯RVDS精简main.c说明
查看>>
指向指针的指针
查看>>
《tiny6410裸机程序》第三章:基础汇编test1
查看>>
《tiny6410裸机程序》第四章:汇编与C混合编程
查看>>
《tiny6410裸机程序》第五章:汇编与C混合编程-LED跑马灯最终说明、myled再次精简
查看>>
《tiny6410裸机程序》第六章:myled通过usb下载至nandflash不能运行
查看>>
《tiny6410裸机程序》第七章:S3C6410外部中断简介
查看>>
《tiny6410裸机程序》第八章:S3C6410外部中断控制寄存器
查看>>
《tiny6410裸机程序》第八章:S3C6410总中断控制寄存器
查看>>
《tiny6410裸机程序》第九章:tiny6410按键控制蜂鸣器程序
查看>>
有关free()函数的一个问题
查看>>
《Android系统学习》之bug定位
查看>>