linux下文件的压缩

常用命令会集

意气风发、Linux不足为怪压缩文件
.gz .bz2 .xz .zip,前多少个无法干文件夹,zip跟windows下极其同样。
默许格局下压缩战绩
图片 1
按压缩率排
xz>bz2>gz≈zip
按CPU占用排列
zip≈gz<bz2<xz
只顾随文件不一致,效果不相符。

咱们管见所及使用window的时候,平常会用到压缩与解压缩,假设要压缩叁个文本,右击选择【增加到压缩文件】,解压缩则右击选取【解压到当下文件夹】,“点点点”就会做到。可是在多个尚无装图形化分界面的linux操作系统又无法应用“点点点”,那该怎么操作呢?本文就linux中什么运用压缩和打包工具做出表明。

文件查找 find、locate

二、种种压缩管理工科具管理文件措施(加压/解压卡塔 尔(英语:State of Qatar)
通用命令格式
加压:命令 -#(等级,基本不用卡塔 尔(阿拉伯语:قطر‎ -c 文件路线 > 文件路线
解压:命令 -d -c 文件路径 > 文件路线

 

find

find: 文件查找,针对文件名,准确查找,磁盘搜索,io读写,cpu开支大

find [options] [path...] [expression] [action]

b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
-size n[cwbkMG] : 文件大小 为 n 个由后缀决定的数据块。其中后缀为:
b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M:兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-maxdepth 查找最大目录层数 如 1,即只查找一层目录
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件
/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

===expression===

1、gzip 注意不可能压缩文件夹
加压:
压缩前
图片 2

 为何要压缩文件

减少的目标是为着就是将文件通过压缩算法转换成二个体量越来越小格式的公文,减小了文件在硬盘上的攻下空间,压缩文件的时候,非常的损耗CPU的机械原子钟周期,因为CPU要开展多量的乘除,全体压缩也是生龙活虎种拿时间换空间的操作,同期也能使文件能够通过超级慢的网络连接来促成更加快的传导。

 

按文件名:

[root@localhost ~]# find /etc -name "ifcfg-eth0"
[root@localhost ~]# find /etc -iname "ifcfg-eth0"            //-i忽略大小写
[root@localhost ~]# find /etc -iname "ifcfg-eth*"

调减命令: gzip 文件名
图片 3

常用的压缩工具

在linux操作系统中提供了大多的滑坡和平解决压缩工具,种种压缩工具在实施压缩的时候所用的算法是不风度翩翩致的,设计越能够的算法,压缩的水平就越高。相比较老的压缩工具备compress(今后已经不时用了卡塔 尔(英语:State of Qatar),常用的压缩工具备:gzip、bzip、xz和zip。大家能够通过后缀名来分裂压缩文件是被哪些工具压缩的,举例若是选取compress压缩文件,获得的文书的后缀名是.z,其余的减少的后缀名如下:

图片 4

 

按文件大小:

[root@localhost ~]# find /etc -size +5M                        //大于5M
[root@localhost ~]# find /etc -size 5M
[root@localhost ~]# find /etc -size -5M
[root@localhost ~]# find /etc -size +5M -ls                    //-ls找到的处理动作

点名压缩等第: gzip -#(1-9暗中同意是6,基本相当少用那些选项卡塔尔国
1级时图片 5
9级时图片 6
内外差别不大

gzip、gunzip和zcat

 gzip是最常用的压缩工具了,gunzip是呼应的解压缩工具。zcat能够在不为人知压.gz格式的压缩文件的情事下查看文件的内容。

语法:gzip [OPTION]... FILE...
常用选项: -d:解压缩,相当于gunzip;
         -#:指定压缩比,默认是6,数字越大压缩比越大(1-9),压缩比=压缩前文件大小/压缩后文件的大小;
         -c:将压缩结果输出至标准输出。  gzip -c file  >  /path/to/somefile.gz

举例:
将/etc/init.d/functions复制到tmp目录下举行gzip压缩:

[root@localhost tmp]# cp /etc/init.d/functions /tmp/
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
[root@localhost tmp]# gzip functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4694 Sep  3 06:20 functions.gz

 也得以行使gunzip,为了方便回想,提出大家一向利用-d选项就好了:

[root@localhost tmp]# gzip functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4694 Sep  3 06:20 functions.gz
[root@localhost tmp]# gunzip functions.gz 
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions

 钦定压缩比:

[root@localhost tmp]# gzip -9 functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4686 Sep  3 06:20 functions.gz

将回降比设置为9随后,相对于压缩比6,仅仅只压缩了8个字节,平时景况下都无需去动压缩比,因为6朝气蓬勃度是二个最棒的抉择。

动用-c将出口结果至正式输出,大家将见到一群乱码,那-c选项到底有哪些用吧?

图片 7

 大家在压缩文件的时候原工件会被剔除,要是想保留原作件就能够透过-c选项来落实啦!

[root@localhost tmp]# gzip -c functions > functions.gz
[root@localhost tmp]# ll
total 24
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
-rw-r--r--. 1 root root  4694 Sep  3 06:39 functions.gz

 能够使用zcat在鲜为人知压缩的情事下查看文件的原委:

[root@localhost tmp]# zcat functions.gz 
# -*-Shell-script-*-
#
# functions    This file contains functions to be used by most or all
#        shell scripts in the /etc/init.d directory.
#

TEXTDOMAIN=initscripts

# Make sure umask is sane
umask 022

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
......(略)

 

点名查找的目录深度:

-maxdepth levels
-mindepth levels
[root@localhost ~]# find / -maxdepth 4 -a  -name "ifcfg-eth0"

解压
命令
gzip -d 文件名 或者 gungzip 文件名
图片 8

bzip2、bunzip2和bzcat

 和gzip肖似,bzip2为压缩工具,bunzip2为解压缩工具,相似bzcat的法力了在不解压文件的情事下,查看文件内容。

语法:bzip2 [OPTION]... FILE...
常用选项: -d:解压缩,相当于bunzip2
         -#:指定压缩比,默认是6,数字越大压缩比越大(1-9)
         -k:keep,压缩并保留原文件,bzip2不需要像gzip那样使用输出重定向至指定的文件,这样就方便多啦

大家来比喻看一下:

将/etc/init.d/functions复制到tmp目录下,使用bzip2压缩:

[root@localhost tmp]# bzip2 functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4763 Sep  3 06:20 functions.bz2

证实bzip2在私下认可压缩的境况下也会去除原来的文章件,节约了磁盘的空中。

再来看一下解压缩的秘籍:

[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4763 Sep  3 06:20 functions.bz2
[root@localhost tmp]# 
[root@localhost tmp]# bunzip2 functions.bz2 
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
[root@localhost tmp]# bzip2 functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4763 Sep  3 06:20 functions.bz2
[root@localhost tmp]# bzip2 -d functions.bz2 
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions

好呢,依然建议我们记住三个-d选项就好啊!

现行反革命大家来使用以下-k选项:

[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
[root@localhost tmp]# bzip2 -k functions 
[root@localhost tmp]# ll
total 24
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
-rw-r--r--. 1 root root  4763 Sep  3 06:20 functions.bz2

 使用bzcat在不展开压缩文件的动静下查看文件的内容:

[root@localhost tmp]# bzcat functions.bz2 
# -*-Shell-script-*-
#
# functions    This file contains functions to be used by most or all
#        shell scripts in the /etc/init.d directory.
#

TEXTDOMAIN=initscripts

# Make sure umask is sane
umask 022

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH
......(略)

 

依期间找(atime,mtime,ctime):

[root@localhost ~]# find /etc -mtime +5                      //修改时间超过5天
[root@localhost ~]# find /etc -mtime 5                       //修改时间等于5天
[root@localhost ~]# find /etc -mtime -5                      //修改时间5天以内

钦点定处理文件的门道,不删除原来的书文件
加压gzip -c 文件路线 > 想要放的门径
图片 9
解压gzip -c -d 文件路线 > 想要放的不二等秘书籍
图片 10

 xz、unxz和xzcat

 压缩工具的新锐,xz为压缩工具,unxz为解压缩工具,xzcat也是在不展开压缩文件的气象下查看文件内容。

语法:xz [OPTION]... FILE...
常用选项: -d:解压缩
         -#:指定压缩比,默认为6
         -k:压缩并保留原文件

比方吗!

将/etc/init.d/functions复制到tmp目录下,使用xz压缩:

[root@localhost tmp]# xz functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4576 Sep  3 06:20 functions.xz

 解压缩:

[root@localhost tmp]# unxz functions.xz     #使用unxz解压缩
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
[root@localhost tmp]# xz functions 
[root@localhost tmp]# ll
total 8
-rw-r--r--. 1 root root 4576 Sep  3 06:20 functions.xz
[root@localhost tmp]# xz -d functions.xz   #使用-d选项解压缩
[root@localhost tmp]# ll
total 16
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions

 使用-k选项精减并保留原作件:

[root@localhost tmp]# xz -k  functions 
[root@localhost tmp]# ll
total 24
-rw-r--r--. 1 root root 15131 Sep  3 06:20 functions
-rw-r--r--. 1 root root  4576 Sep  3 06:20 functions.xz

 试试xzcat:

[root@localhost tmp]# xzcat functions.xz 
# -*-Shell-script-*-
#
# functions    This file contains functions to be used by most or all
#        shell scripts in the /etc/init.d directory.
#

TEXTDOMAIN=initscripts

# Make sure umask is sane
umask 022

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH
......(略)

 扩充,是用man手册的时候,大家会开掘别的一个工具lzma、unlzma和lzcat,其后缀名称叫.lzma,记住xz就好啊,它和lzma是有一定的关联的,详细可知man手册。

lzma is equivalent to xz --format=lzma
unlzma is equivalent to xz --format=lzma --decompress
lzcat is equivalent to xz --format=lzma --decompress --stdout

大家linux内核官方网站查找内核文件的时候,文件被压缩使用的工具是gzip和xz,也得以看出xz的压缩率更加大。

 图片 11

 现在设有的二个难点是,仅仅只是对单个文件举行裁减,那么那么些工具能够对目录进行压缩吗?

咱俩在tmp文件下创建test目录,拷贝多少个文件到内部:

[root@localhost tmp]# ll /tmp/test/
total 332
-rw-r--r--. 1 root root  15131 Sep  3 06:59 functions
-rw-------. 1 root root 318014 Sep  3 06:59 messages
-rw-r--r--. 1 root root   1054 Sep  3 06:58 passwd

 未来来试试看压缩目录:

[root@localhost tmp]# gzip /tmp/test/
gzip: /tmp/test/ is a directory -- ignored
[root@localhost tmp]# bzip2 /tmp/test/
bzip2: Input file /tmp/test/ is a directory.
[root@localhost tmp]# xz /tmp/test/
xz: /tmp/test/: Is a directory, skipping

 都特别,那该如何是好吧?接下去大家讲讲tar吧!