2020-03-18 14:41:49 qq_44944641 阅读数 25

一.什么叫压缩

在讲压缩工具之前,我们先来讲解一下压缩原理。目前我们使用的计算机系统是使用bytes单位计量的,但是实际上,计算机中最小的计量单位是bits,我们知道1byte=8bits,加入我们在记录一个数字1的时候是如何来记录的?
我们之前讲过一个byte是8bits我们可以理解成如下样子:

口 口 口 口 口 口 口 口

一个空格代表一个bit,1byte就是8个空格子,当我们在存放数字1的时候,根据二级制计数,在这里存放的是00000001,7个0一个1,实际上前面7个0都是空的,但是由于要满足我们操作系统的存取方式,必须以8位为单位存储,所会造成有一些空间并没有填满。压缩就是将这些没有使用到的空间丢出来,让文件的占用空间变小,这就是压缩技术。
解压缩技术就是将压缩完的数据还原成未压缩的状态。
压缩比就是指压缩后与压缩前的文件所占用磁盘空间的大小比值。
我们常见的网站数据传输一般都是使用的压缩技术,数据在网络传输过程中是使用的压缩数据,当压缩数据达到用户主机时,通过解压缩,再展示出来。

二.压缩与解压命令

  • 1).zip和uzip命令

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

-d 从压缩文件内删除指定的文件
-f 参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中
-u 更换较新的文件到压缩文件内
-j 只保存文件名称及其内容,而不存放任何目录名称
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-v 显示指令执行过程或显示版本信息
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效
- <压缩效率> 压缩效率是一个介于1-9的数值

注:压缩率:描述压缩文件的效果名,是文件压缩后的大小与压缩前的大小之比。
例如:把100m的文件压缩后是90m,压缩率为90/100*100%=90%,压缩率一般是越小越好,但是压得越小,解压时间越长。
压缩效率(compressionefficiency)越大压缩后的文件越小,解压时间越长。

例1:压缩install.log文件
在这里插入图片描述
例2:压缩效率分别为3和9
在这里插入图片描述
例3:将test目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩了目录下所有文件
在这里插入图片描述
例4:解压lin.zip在这里插入图片描述

  • 2).gzip和gunzip命令

(gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。
)

-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-l 列出压缩文件的相关信息
-L 显示版本与版权信息
-n 压缩文件时,不保存原来的文件名称及时间戳记
-N 压缩文件时,保存原来的文件名称及时间戳记
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串
-v 显示指令执行过程
-t 测试压缩文件是否正确无误
-<压缩效率> 压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高

例1:把test目录下的每个文件压缩成.gz文件
这里是引用
例2:解压上面的文件,并列出详细信息
事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成
在这里插入图片描述

  • 3).bzip2和bunzip2命令

bzip2 命令同 gzip 命令类似,只能对文件进行压缩(或解压缩),对于目录只能压缩(或解压缩)该目录及子目录下的所有文件。当执行压缩任务完成后,会生成一个以“.bz2”为后缀的压缩包)

-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f或-force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数
-k bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数
-s 降低程序执行时内存的使用量
-t 测试.bz2压缩文件的完整性
-v 压缩或解压缩文件时,显示详细的信息
-z 强制执行压缩
-V 显示版本信息

例1:压缩文件file
在这里插入图片描述
例2:解压文件file
这一处的解压和gzip类似
在这里插入图片描述

4).xz和unxz命令

xz [option] … FILE…

-d 解压缩
-# 指定压缩比,默认是6,数字越大压缩比越大(1-9)
-k 保留原文件

三.打包归档命令

首先要弄清两个概念:打包和压缩。
打包是指将一大堆文件或目录变成一个总的文件;
== 压缩则是将一个大的文件通过一些压缩算法变成一个小文件。==
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzipbzip2命令)。

1).tar命令

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

-c 建立压缩档案
-x 解压
-t 查看内容
-r 向压缩归档文件末尾追加文件
-u 更新原压缩包中的文件
-A 追加tar文件至归档

这六个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z 有gzip属性的
-j 有bz2属性的
-J 有xz属性的
-Z 有compress属性的
-v 显示所有过程
-O 将文件解压到标准输出
-N [date file] somedir

-f:必须的选项,这个参数是最后一个参数,后面要接的是压缩文件名

例1:打包文件file1和file2,仅打包不压缩
这里是引用
例2:先将file文件打包成lin1.tar,并且执行gzip压缩
在这里插入图片描述
tar -jcvf lin2.tar.bz2 file
tar -Jcvf lin3.tar.xz file

这两指令与上述图片方法相同,只是压缩文件格式不同(参照上述图片)

在 文件夹当中,比某个日期新的文件才备份
在这里插入图片描述

四.转换或拷贝文件dd命令

用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

  • dd if=/dev/zero of=/tmp/file bs=1K count=10
  • if:标准输入:输入的文件名,指定源文件
  • of:标准输出,输出的文件名,指定目的文件
  • count:拷贝多个块
  • bs:指定输入输出块大小
ibs:读入块
obs:输出块
  • skip=* :从输入的文件跳过多少个块后复制
  • seek=* :从输出的文件跳过多少个块后复制
  • conv= *:用指定的参数转换文件

conv=* 参数:

ascii ascii:转换ebcdic为ascii
ebcdic 转换ascii为ebcdic
ibm ibm:转换ascii为alternateebcdic
block 把每一行转换为长度为cbs,不足部分用空格填充
unblock 使每一行的长度都为cbs,不足部分用空格填充
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节
noerror 出错时不停止
notrunc 不截短输出文件
sync 将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

例1:将本地的/dev/sda整盘备份到/dev/sdb(备份磁盘)
[root@localhost ~]#dd if=/dev/sda of=/dev/sdb

例2:将/dev/sda全盘数据备份到指定路径的file文件中(备份磁盘到文件)
[root@localhost ~]#dd if=/dev/sda of=/tmp/file

[root@localhost ~]#dd if=/dev/sda | gzip > /tmp/file.gz

例3:将备份文件恢复到指定磁盘
[root@localhost ~]#dd if=/tmp/file of=/dev/sdd

例4:备份与恢复MBR
备份磁盘开始的512字节大小的MBR信息到指定文件
[root@localhost ~]#dd if=/dev/sdd of=/tmp/file count=1 bs=512
恢复:(将备份的MBR信息写道磁盘开始部分)
[root@localhost ~]#dd if=/tmp/file of=/dev/had

例5:拷贝内存文件
[root@localhost ~]#dd if=/dev/mem of=/tmp/file bs=1m count=1024

例6:测试硬盘的读写速率
[root@localhost ~]#dd if=/dev/zero of=/tmp/file bs=100K count=1024

例7:测试硬盘的最佳块大小,1K 4K 8 K 16K
[root@localhost ~]#dd if=/dev/zero of=/tmp/file bs=1024 count=1000000 [root@localhost ~]#dd if=/dev/zero of=/tmp/file bs=4096 count=250000 [root@localhost ~]#dd if=/dev/zero of=/tmp/file bs=8192 count=125000

例8:大写转换此文件
[root@localhost ~]#dd if=/tmp/file of=/tmp/file1 conv=ucase

五.cpio备份命令

cpio是用来建立,还原备份档案的工具程序,它可以加入,解开cpio,img或tra备份档内的文件

常见的操作模式:
1).备份: cpio -ocvB > file
2).还原: cpio -ivcdu > file
3).查看: cpio -ivct > file

-o 拷贝文件到某个文件或者设备
-c 存储方式
-v 显示存储过程
-B 将输入/输出的区块大小改成 5210 Bytes
-i 从某个文件或者设备拷贝出
-d 自动创建目录
-u 自动将新文件覆盖旧文件
-t 查看文件或者设备中的内容

例1:将所有系统上的资料统统写入磁带机内
[root@localhost ~]# find / -print | coip -covb>dev/st0

2018-04-30 09:02:07 petpig0312 阅读数 248

实验环境:Centos7.* 64位,最小化安装版。长时间不解压缩,命令就会忘记,给自己留个记录,没事来看看。

linux 系统tar文件压缩打包命令linux 系统tar文件压缩打包命令

打包成tar.gz格式压缩包

# tar -zcvf renwolesshel.tar.gz /renwolesshel

解压tar.gz格式压缩包

# tar zxvf renwolesshel.tar.gz

打包成tar.bz2格式压缩包

# tar -jcvf renwolesshel.tar.bz2 /renwolesshel

解压tar.bz2格式的压缩包

# tar jxvf renwolesshel.tar.bz2

压缩成zip格式

# zip -q -r renwolesshel.zip renwolesshel/

解压zip格式的压缩包

# unzip renwolesshel.zip

暂时先这些吧,后期遇到了再添加。

2016-06-04 16:05:03 noble510520 阅读数 287

DF

df – report file system disk space usage 查看文件系统的使用清空

用法

df [-hi] [path]

选项

  • -h human readable ,以人类易读的方式显示size
  • -i inode 显示inode,不显示硬盘容量

DEMO

df

注意

  • df后面接path的话,会输出这个path所在的文件系统的信息

DU

du – show file space usage ,输出文件的大小

默认情况下,输出当前目录和所有子目录的大小

选项

-s display only a total for each argument,仅显示当前目录的总大小

-S exclude size of subdirectories ,排除子目录的大小

-h human readable

DEMO

du

LN

ln – make links between files ,创建文件之间的连接

默认是硬连接

用法

ln [-sf] source destination

选项

  • -s symbolic links ,软连接
  • -f force,暴力,不管destination有没有存在,直接复制

STAT

stat – display file or file system status,显示文件或文件系统的状态

可以用这个指令看inode信息

默认情况是显示出文件的inode信息

用法

stat [-f] file

选项

-f file system,显示该file所在的文件系统super inode信息

DEMO

stat

不加选项,显示文件的inode

加了选项,显示文件所在磁盘的inode信息

查看原文:点击打开链接

2019-07-12 20:44:28 jiaruitao777 阅读数 129
目录
1.打包与压缩相关概念
2.zip压缩打包程序
3.tar打包工具
4.总结

1.打包与压缩相关概念

Linux上有各种打包压缩工具和各种压缩文件格式

在这里插入图片描述

2.zip压缩打包程序

zip -r -9 -q -o hello.zip /home/book/Desktop

-r 参数表示递归打包包含子目录的全部内容
-9 0~9表示压缩级别(9最大,0最小)
-q 参数表示为安静模式,即不向屏幕输出信息
-o,表示输出文件,需在其后紧跟打包输出文件名。

du  -h hello.zip		//查看文件大小
file hello.zip			//查看文件类型
unzip hello.zip -d hello		//把hello.zip解压到hello目录下,如果没有hello目录,则创建

3.tar打包工具

tar的打包和解包都是一个命令tar,只是参数不同

  • 打包
tar -cf book.tar /home/book/Desktop		//打包Desktop为book.tar

-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc book.tar,可以写成 tar -f book.tar -c ~。

  • 解包
mkdir tardir
$ tar -xf book.tar -C tardir		//解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)

4.总结

zip:
打包 :zip something.zip something (目录请加 -r 参数)
解包:unzip something.zip
指定路径:-d 参数

tar:
打包:tar -cf something.tar something
解包:tar -xf something.tar
指定路径:-C 参数

2019-02-26 11:42:35 xiaoliantongtong 阅读数 104

一:压缩原理:

     1:总述

        目前使用的计算机系统,是使用字节单位来计量的;事实上,计算机最小的计量单位应该是位;一个字节等于八位;

        由于我们记录的数字是1,考虑计算机的二进制,1会在最右边占据1位,而其他7位将会自动填上0,那7位应该是“空位”才对;利用一些复杂的计算方式,将这些没有使用到的空间“丢”出去,让文件占用的空间变小,这就是压缩技术;

        简而言之,其实文件里面有相当多的“空间”存在,并不是完全填满的,而“压缩”技术就是将这些“空间”填满,以让整个文件占用的容量下降;

二:压缩命令:

     1:compress

            compress [-dcr] 文件或目录

            -d:用来解压缩的参数;

            -r:可以连同目录下的文件同时压缩;

            -c:将压缩数据输出为标准输出(输出到屏幕):输出的是压缩过程;

     2:gzip,zcat

            gzip [-cdt#] 文件名

            zcat 文件名.gz

            -c:将压缩数据输出到屏幕上,可通过数据流充到向来处理;

            -d:解压缩的参数;

            -t:可以用来检验一个压缩文件的一致性,看文件有无错误;

            -#:压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认是-6;

     3:bzip2,bzcat

            bzip2 [-cdz] 文件名

            bzcat 文件名.bz2

            -c:将压缩过程产生的数据输出到屏幕上。

            -d:解压缩的参数;;

            -z:压缩的参数;

            -#:与gzip一样;

     4:tar

            tar [-cxtzjvfpPN] 文件与目录

            -c:创建压缩文件的参数命令;

            -x:解开压缩文件的参数命令;

            -t:查看tarfile里的文件;

            -z:是否同时具有gzip的属性?即是否需要用gzip解压或压缩?

            -j:是否同时具有bzip2的属性?即是否需要用bzip2解压或压缩?

            -v:显示解压或压缩的过程;

            -f:目标文件名;注意在f之后要立即接文件名,不要再加参数;

            -p:使用源文件的原来属性;

            -P:使用绝对路径来压缩;

            -N:比后面接的日期(YYYY/MM/DD)还要新的才会被打包进新建的文件中;

            -C:制定解压到的目录;

            注:在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,我们不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的;

           示例:

                    以Gzip格式压缩文件xxxx为xxxx.tar.gz:

                                 tar -czvf xxxx.tar.gz xxxx

                   解开压缩文件xxxx.tar.gz到文件加xxxx:

                                 tar -xzvf xxxx.tar.gz -C xxxx

     5:dd

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

            if:是输入文件,也可以是设备;

            of:是输出文件,也可以是设备;

            bs:规划的一个块的大小,如果没有设置时,默认是512字节;

            count:多少个bs的意思;

            注:tar可以用来备份关键数据,而dd可以用来备份整个分区或整个磁盘;

     6:cpio:通过数据流重导向方法进行备份

           cpio -covB > [file|device] <== 备份

           cpio -icduv < [file|device] <==还原

           -o:将数据复制输出到文件或设备;

           -i:将数据从文件或设备复制到系统中;

           -t:查看cpio建立的文件或设备的内容;

           -c:一种较新的可移植格式的存储;

           -v:让存储过程中文件名称可以在屏幕上显示;

           -B:让默认的块可以增加到5120字节,默认512字节;

           -d:自动建立目录;

           -u:自动将较新的文件覆盖较旧的文件;

搭建最小linux系统

阅读数 432

没有更多推荐了,返回首页