Linux学习——常见压缩及打包命令、压缩与备份工具

一、压缩文件的用途与技术

简单来说,你可以将它想成,其实文件里有相当多的空间存在,并不是完全填满的,而压缩的技术就是将这些空间填满,以让整个文件占用的容量下降。不过,这些被压缩过的文件数据,则必须将它还原回来未压缩前的模样,那就是所谓的解压缩

而至于压缩后与压缩的文件所占用的磁盘空间大小,就可以被称作压缩比

二、常见压缩命令

常见的压缩文件扩展名:

扩展名 含义
*.z compress程序压缩的文件
*.zip zip程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 xz程序压缩的文件
*.xz xz程序压缩的文件
*.tar tar程序打包的文件,并没有压缩过
*.tar.gz tar程序打包的文件,并且经过gzip的压缩
*.tar.bz2 tar程序打包的文件,并且经过bzip2的压缩
*.tar.xz tar程序打包的文件,并且经过xz的压缩

1、gzip,zcat/zmore/zless/zgrep

gzip可以说是目前应用最广的压缩命令了,压缩文件扩展名为.gz*

命令语法:

gzip [-cdtv#] [name ...].gz

zcat [ -fhLV ] [ name ...  ].gz

命令选项:

选项 含义
-c 将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d 解压缩
-t 可以检验一个压缩文件的一致性,看看有无错误
-v 可以显示出原文件/压缩文件的的压缩比等信息
-# #为数字的意思,代表压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认是-6

例1:找出/etc下面(不含子目录)容量最大的文件,并将它复制到/tmp,然后用gzip压缩

[root@localhost ~]# ll -drS /etc/*
-rw-r--r--.  1 root root      0 Jan 12  2010 /etc/motd
-rw-r--r--.  1 root root      0 May 11  2016 /etc/init.conf
-rw-r--r--.  1 root root      0 May 10  2016 /etc/gai.conf
-rw-r--r--.  1 root root      0 Jan 12  2010 /etc/exports
...
-rw-r--r--.  1 root root  43591 Sep 23  2011 /etc/mime.types
-rw-r--r--.  1 root root 641020 Oct  2  2013 /etc/services
[root@localhost ~]# cd /tmp
[root@localhost tmp]# cp /etc/services .
[root@localhost tmp]# gzip -v services
services:        80.2% -- replaced with services.gz
[root@localhost tmp]# ll /etc/services /tmp/services.gz
-rw-r--r--. 1 root root 641020 Oct  2  2013 /etc/services
-rw-r--r--. 1 root root 127223 Mar 10 02:24 /tmp/services.gz

例2:将例1文件解压缩

[root@localhost tmp]# gzip -d services.gz
...

例3:重新以最佳压缩比压缩,保留原本的文件,并找出关键词http在第几行

[root@localhost tmp]# gzip -9 -c services > services.gz
[root@localhost tmp]# zgrep -n "http" services.gz
14:#       http://www.iana.org/assignments/port-numbers
89:http            80/tcp          www www-http    # WorldWideWeb HTTP
90:http            80/udp          www www-http    # HyperText Transfer Protocol
91:http            80/sctp                         # HyperText Transfer Protocol
197:https           443/tcp                         # http protocol over TLS/SSL
...

2、bzip2,bzcat/bzmore/bzless/bzgrep

选项 含义
-k 保留原始文件
-z 压缩的参数

【注】:用法和其他选项与gzip相同

3、xz,xzcat/xzmore/xzless/xzgrep

选项 含义
-l 列出压缩文件的相关信息

三、打包命令:tar

命令语法:

tar [OPTION...] [FILE]...

命令选项:

选项 含义
-c 建立压缩打包文件
-x 解压
-t 查看文件
-r 追加文件
-u 更新文件
-A 归档
-f 后面接要被处理的文件名,必须是最后一个选项

简单使用tar命令我们只需要记住下面这些就可以了:

- [ ] 压缩: tar -jcvf file.tar.bz2 file / tar -Jcvf file.tar.xz file
- [ ] 查询: tar -Jtv -f filename.tar.xz / tar -jtv -f filename.tar.bz2
- [ ] 解压缩:.tar: tar -xvf [解包] /.tar.gz: tar -xzvf / *.tar.bz2: tar -xjvf
例:

[root@localhost tmp]# tar -Jcvf services.tar.xz services
services
[root@localhost tmp]# tar -Jtv -f services.tar.xz
-rw-r--r-- root/root    641020 2020-03-10 02:35 services
[root@localhost tmp]# tar -xJvf services.tar.xz
services

四、dd 拷贝文件命令

dd  if=/dev/zero of=/tmp/file bs=1K  count=10

if:标准输入:输入的文件名,指定源文件
of:标准输出,输出的文件名,指定目的文件
bs:指定输入输出块大小
ibs:读入块
obs:输出块
count:拷贝多个块
skip= :从输入的文件跳过多少个块后复制
seek= :从输出的文件跳过多少个块后复制
conv= :转换
  • 备份磁盘:

    dd if=/dev/sda of=/dev/sdb

  • 备份磁盘到文件:

    dd if=/dev/sda of=/tmp/file
    dd if=/dev/sda | gzip > /tmp/file.gz

  • 将备份文件恢复到指定磁盘:

    dd if=/dev/mem of=/tmp/file bs=1m count=1024

  • 测试硬盘的读写速率:

    dd if=/dev/zero of=/tmp/file bs=100K count=1024
    在这里插入图片描述

  • 测试硬盘的最佳块大小,1K 4K 8 K 16K:

    dd if=/dev/zero of=/tmp/file bs=1024 count=1000000
    dd if=/dev/zero of=/tmp/file bs=4096 count=250000
    dd if=/dev/zero of=/tmp/file bs=8192 count=125000

  • 转换:

    dd if=/tmp/file of=/tmp/file1 conv=ucase

五、cpio 备份命令

备份: cpio -ocvB > file
还原: cpio -ivcdu > file
查看: cpio -ivct > file

选项 含义
-o 拷贝文件到某个文件或者设备
-c 存储方式
-v 显示存储过程
-B 以XXX块大小拷贝, 默认是512 ,以5120大小拷贝
-i 从某个文件或者设备拷贝出
d 自动创建目录
u 自动新文件覆盖旧文件 update
t 查看文件或者设备中的内容

#find / -print | cpio -ocvB > /dev/sdb
#cpio -ivcdu < /dev/sdb > /tmp/log

你可能感兴趣的:(Linux学习——常见压缩及打包命令、压缩与备份工具)