文件压缩和软件包管理

Linux压缩打包

压缩是一种通过特定的算法来减小计算机文件大小的机制。有利于文件在网络上的传输,节约带宽。在Linux中,压缩是以后缀名区分文件的。(Linux中很少见)压缩文件都会呈现醒目的红色。

注意!以下压缩软件只能压缩文件而不能压缩目录。不能对目录直接压缩!

compress命令

compress这个命令是非常老旧的一款命令,现在基本已经不用了 而且bzip已经可以解开compress压缩格式。一般来说使用compress需要实现安装ncompress包。这里就不做具体详述了

compress [-dfvcVr] [-b maxbits] [file …]

-d: 解压缩,相当于

-c: 结果输出至标准输出,不删除原文件

-v: 显示详情

 uncompress 解压缩

 zcat file.Z >file


gzip命令

gzip/gunzip/zcat是应用最广的命令。目前gzip可以解开compress和gzip等软件压缩的文件,后缀名为FILE.gz。 gunzip为gzip的解压命令,zcat是查看压缩好的带.gz后缀的压缩包。cat查询为乱码!

语法格式

gzip [OPTION]… FILE …

常用参数

-d: 解压缩,相当于gunzip

-c: 将压缩或解压缩的结果输出至标准输出

-#:1-9,指定压缩比,值越大压缩比越大。默认为6,数值越高压缩比越高,但不推荐

举例

[root@localhost tmp]# ll  #原始文件
total 8
-rw-r--r-- 1 root root  679 Aug 24 10:14 fstab
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
[root@localhost tmp]# gzip fstab  #压缩fstab
[root@localhost tmp]# ll
total 8
-rw-r--r-- 1 root root  376 Aug 24 10:14 fstab.gz #原文件压缩加后缀,大小改变
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
[root@localhost tmp]# gzip -dc fstab.gz >file #解压且保留压缩文件,默认不保留
[root@localhost tmp]# ll #显示解压文杰和保留压缩包
total 12
-rw-r--r-- 1 root root  679 Aug 24 10:14 file
-rw-r--r-- 1 root root  376 Aug 24 10:14 fstab.gz
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
[root@localhost tmp]# compress file #用compress压缩file文件
[root@localhost tmp]# ll
total 12
-rw-r--r-- 1 root root  468 Aug 24 10:14 file.Z #compress压缩文件,后缀为.Z
-rw-r--r-- 1 root root  376 Aug 24 10:14 fstab.gz
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd
[root@localhost tmp]# gunzip file.Z #使用gzip解压compress压缩文件
[root@localhost tmp]# ll
total 12
-rw-r--r-- 1 root root  679 Aug 24 10:14 file #解压成功
-rw-r--r-- 1 root root  376 Aug 24 10:14 fstab.gz
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd


bzip2命令

bzip/bunzip2/bzcat是为了取代gzip并提供更高的压缩比而来的。它的用法和gzip几乎完全相同。后缀名为.bz2

语法格式

bzip2 [OPTION]… FILE …

常用选项

-k: keep, 保留原文件

-d:解压缩

-#:1-9,压缩比,默认为6,

bzcat:不显式解压缩的前提下查看文本文件内容;

示例

[root@localhost tmp]# ls #源文件
file  fstab  passwd
[root@localhost tmp]# bzip2 passwd #压缩passwd文件后会在原文件加.bz2完成压缩 
[root@localhost tmp]# ls #显示
file  fstab  passwd.bz2
[root@localhost tmp]# bzip2 -k fstab #压缩并保留源文件
[root@localhost tmp]# ls
file  fstab  fstab.bz2  passwd.bz2
[root@localhost tmp]# ll
total 16
-rw-r--r-- 1 root root 679 Aug 24 10:14 file
-rw-r--r-- 1 root root 679 Aug 24 10:14 fstab
-rw-r--r-- 1 root root 410 Aug 24 10:14 fstab.bz2 #bzip2压缩文件 
-rw-r--r-- 1 root root 995 Aug 24 10:05 passwd.bz2#bzip2压缩文件
[root@localhost tmp]# bzip2 -d passwd.bz2 #解压文件
[root@localhost tmp]# ll
total 16
-rw-r--r-- 1 root root  679 Aug 24 10:14 file
-rw-r--r-- 1 root root  679 Aug 24 10:14 fstab
-rw-r--r-- 1 root root  410 Aug 24 10:14 fstab.bz2
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd #解压成普通文件


xz命令

xz/unxz/zcat是比较新的压缩软件。但它比bzip2的压缩比更好。后缀名为.xz。

语法

xz [OPTION]…FILE…

常用选项

-d;解压缩

  -#;指定压缩比;默认是6;数字越大压缩比越大(1-9);

  -k; 保留原文件

示例

[root@localhost tmp]# ls #测试文件
file  fstab  fstab.bz2  fstab.gz  passwd
[root@localhost tmp]# xz fstab 使用xz压缩fstab文件
[root@localhost tmp]# ll
total 20
-rw-r--r-- 1 root root  679 Aug 24 10:14 file
-rw-r--r-- 1 root root  436 Aug 24 10:14 fstab.xz #xz压缩文件
-rw-r--r-- 1 root root 2535 Aug 24 10:05 passwd


zip命令

zip压缩是使用最广的,不论是windows还是like-unxi系统都有使用它。后缀名为.zip,用法和以上压缩软件都是类型我就不多做介绍了。


tar命令

tar是一个打包命令,可以将多个文件打包成一个文件,同时它也支持gzip/bzip2/xz压缩等。

语法

tar [OPTION…] [FILE]…

常用选项

-j:支持bzip2解压文件;

-v:显示操作过程;

-t或–list:列出备份文件的内容;

-z或–gzip或–ungzip:通过gzip指令处理备份文件;

-Z或–compress或–uncompress:通过compress指令处理备份文件;

-f<备份文件>或–file=<备份文件>:指定备份文件;

-v或–verbose:显示指令执行过程;

-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

-J, –xz :支持xz解压文件

-x或–extract或–get:从备份文件中还原文件;

-x或–extract或–get:从备份文件中还原文件;

特别注意

#在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

# 如果加 z 参数,则以 .tar.gz 或 .tar.gz 来代表 gzip 压缩过的 tar file ~

# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

常用组合选项

tar -cf /PATH/TO/SOMEFILE.tar  FILE….  #创建归档,不压缩

tar -tvf /PATH/TO/SOMEFILE.tar  FILE…. #查看归档中的文件列表

tar -xf  /PATH/FROM/SOMEFILE.tar#解包,.tar包扔存在

tar -xf /PATH/FROM/SOMEFILE.tar -C /PATH/TO/SOMEDIR #解包至指定目录下。

示例

[root@localhost tmp]# ll #原文件
total 15004
-rw-r--r-- 1 root root      595 Aug 24 11:30 fstab
-rw------- 1 root root 15353251 Aug 24 11:30 messages
-rw-r--r-- 1 root root     2535 Aug 24 11:30 passwd
[root@localhost tmp]# tar cf fstab.tar fstab#创建归档文件fstab.tar(注意.tar需要自己手动加后缀好方便识别)
[root@localhost tmp]# tar cf all.tar fstab messages passwd#把三个文件打包为all.tar
[root@localhost tmp]# ll
total 30016
-rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar
-rw-r--r-- 1 root root      595 Aug 24 11:30 fstab
-rw-r--r-- 1 root root    10240 Aug 24 11:33 fstab.tar
-rw------- 1 root root 15353251 Aug 24 11:30 messages
-rw-r--r-- 1 root root     2535 Aug 24 11:30 passwd
[root@localhost tmp]# tar tvf all.tar #查看all.tar文件列表
-rw-r--r-- root/root       595 2016-08-24 11:30 fstab
-rw------- root/root  15353251 2016-08-24 11:30 messages
-rw-r--r-- root/root      2535 2016-08-24 11:30 passwd
[root@localhost tmp]# tar ztvf passwd.tar.gz #查看包内文件列表
-rw-r--r-- root/root      2535 2016-08-24 11:30 passwd
[root@localhost tmp]# tar zxvf passwd.tar.gz #用z解压.gz后缀的文件
passwd
[root@localhost tmp]# ll #显示结果
total 30020
-rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar
-rw-r--r-- 1 root root      595 Aug 24 11:30 fstab
-rw-r--r-- 1 root root    10240 Aug 24 11:33 fstab.tar
-rw------- 1 root root 15353251 Aug 24 11:30 messages
-rw-r--r-- 1 root root     2535 Aug 24 11:30 passwd 
-rw-r--r-- 1 root root     1073 Aug 24 11:37 passwd.tar.gz
[root@localhost tmp]# tar -zxvf passwd.tar.gz  -C /testdir/ #指定压缩的文件路径
passwd
[root@localhost tmp]# ll /testdir/passwd  #查看结果
-rw-r--r-- 1 root root 2535 Aug 24 11:30 /testdir/passwd


cpio命令

cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。

语法

 cpio [选项] > 文件名或者设备名

 cpio [选项] < 文件名或者设备名

常用选项

-o 将文件拷贝打包成文件或者将文件输出到设备上

-i 解包,将打包文件解压或将设备上的备份还原到系统

-t 预览,查看文件内容或者输出到设备上的文件内容

-v 显示打包过程中的文件名称。

-d 解包生成目录,在cpio还原时,自动的建立目录

-c 一种较新的存储方式

示例

 将etc目录备份:

find /etc -print |cpio -ov >etc.cpio

[root@localhost tmp]# ll
total 49768
-rw-r--r-- 1 root root 15360000 Aug 24 11:33 all.tar
-rw-r--r-- 1 root root 20218368 Aug 24 13:21 etc.cpio #etc备份包
-rw-r--r-- 1 root root      595 Aug 24 11:30 fstab
-rw-r--r-- 1 root root    10240 Aug 24 11:33 fstab.tar
-rw------- 1 root root 15353251 Aug 24 11:30 messages
-rw-r--r-- 1 root root     2535 Aug 24 11:30 passwd
-rw-r--r-- 1 root root     1073 Aug 24 11:37 passwd.tar.gz

 内容预览 

cpio –tv < etc.cpio

 要解包文件

cpio –iv <etc.cpio

cpio –idv < etc.cpio

原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/39476

(0)
ladsdmladsdm
上一篇 2016-08-24 21:22
下一篇 2016-08-24 21:22

相关推荐

  • 安装LNMP + 搭建WordPress个人博客

    安装LNMP + 搭建Wordpress个人博客 前言 来到马哥教育也有几个月了,学了很多知识。现在想要把这些知识能够存储在一个地方,随时随地的都能看到,于是乎我就想到了博客,以下我搭建Wordpress的过程。 安装LNMP 一、关掉防火墙 # chkconfig iptables off 二、安装开发包和库文件 #&nbsp…

    Linux干货 2016-05-31
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • HTTPD-相关的配置

    一次完整的HTTP请求处理过程: 1、建立连接:接收或拒绝链接请求 2、接受请求:接收客户端请求报文中对某资源的一次请求的过程 Web访问响应模型(Web I/O) 单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请 求被串行响应; 多进程I/O模型:并行启动多个进程,每个进程响应一个链接请求; 复用I/O结构:启动一个进程,同时响应N个…

    2017-08-29
  • bash 循环语句for、while、until

    循环执行 循环执行     定义:将某段代码有次数或无次数循环执行多次。     构成要素:退出条件和进入条件     循环的三种语句:for、while、until for循环:      &nbs…

    Linux干货 2016-08-21
  • grep命令与正则表达式

    grep命令与正则表达式 什么是grep:         grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的…

    Linux干货 2017-04-08
  • FHS文件系统介绍及各目录功能说明

    作者:M21-陆东贵 FHS文件系统介绍及各目录功能说明 FHS简介 Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾…

    Linux干货 2016-10-18