zoukankan      html  css  js  c++  java
  • 09linux基础-文档归档和压缩

    1  tar命令进行文件的归档和压缩

    1.1归档和压缩

    归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率

    tar命令  作用:打包、压缩文件

    作用:打包、压缩文件;tar 文件是把几个文件和(或)目录集合在一个文件里,该存档文件可以通过使用gzip、bzip2或xz等压缩工具进行行压缩后传输

    查看man tar

    用法:tar [OPTION...] [FILE]...

    参数:

    -c     create创建文件

    -x     -extract [ˈekstrækt]  提取 解压还原文件

    -v     --verbose显示执行详细过程

    -f      --file指定备份文件

    -t      --list 列出压缩包中包括哪些文件,不解包,查看包中的内容

    -C (大写)--directory   指定解压位置

    例:给/boot/grub目录 打包

    [root@test ~]#  tar -cvf grub.tar /boot/grub/  # tar的参数前可以不使用‘-’

    或:

    [root@test ~]#  tar cvf grub.tar /boot/grub/

    tar: 从成员名中删除开头的“/”

    /boot/grub/

    /boot/grub/splash.xpm.gz

    [root@test ~]# ls gurb.tar

    [root@test ~]# tar xvf grub.tar   #解压缩

    boot/grub/

    boot/grub/splash.xpm.gz

    [root@test ~]# ls  boot  #得到boot目录

    注意:在使用绝对路径名归档文件时,将默认从文件名中删除该路径中前面的 / 符号。这样解压时,会直接解压到当前目录。 如果不移除/压缩时,当解包时,直接按绝对路径来释放,会覆盖原系统中此路径的文件。

    例1:指定解压位置  -C

    [root@test ~]# tar xvf grub.tar.bz2 -C /opt/

    tar: 从成员名中删除开头的“/”

    /boot/grub/

    /boot/grub/splash.xpm.gz

    [root@test ~]# ls /opt/

    boot

    例2:把两个目录或目录+文件打包成一个软件包:

    [root@test ~]# mkdir back

    [root@test ~]# cp /etc/passwd back/

    [root@test ~]# tar -cvf back.tar /boot/grub  back/ /etc/passwd

    tar: 从成员名中删除开头的“/”

    /boot/grub/

    /boot/grub/splash.xpm.gz

    back/

    back/passwd

    /etc/passwd

    例3:不解包,查看tar中的内容:

    [root@test ~]# tar -tvf grub.tar         # List all files in archive.tar verbosely.

    例4:对比加v的效果

    [root@test ~]# tar -xf grub.tar

    [root@test ~]# tar -xvf grub.tar

    boot/grub/

    boot/grub/splash.xpm.gz

     

    1.2  tar 归档+压缩:

    语法:tar czvf newfile.tar.gz SOURCE

    常用参数:

    -z, --gzip   以gzip方式压缩  扩展名: tar.gz

    -j :        以bz2方式压缩的  扩展名:tar.bz2

    -J :        以xz 方式压缩   扩展名:tar.xz

    例1:创建.tar.gz 包

    [root@test ~]# tar cvf etc.tar /etc

    [root@localhost test]# tar zcvf etc.tar.gz /etc  #归档,注意备份的名字后缀

    [root@localhost test]# tar zxvf etc.tar.gz   #解压缩

    例2:创建.tar.bz2包

    语法: #tar jcvf newfile.tar.bz2  SOURCE

    [root@test ~]#  tar -jcvf etc.tar.bz2 /etc  

    [root@test ~]#  tar -jxvf etc.tar.bz2 /etc    #解压缩

    [root@test ~]#  tar jxvf etc.tar.bz2 -C  /opt    #解压到opt目录下

    例3:创建.tar.xz包

    [root@test ~]#  tar -Jcvf etc.tar.xz /etc

    [root@test ~]#  tar -xvf etc.tar.xz    #tar.xz 这类包,解压缩

    或:

    [root@test ~]#  tar -Jxvf etc.tar.xz  #

    对比三种压缩方式后压缩比例:

    [root@test ~]# ll -h etc.tar*

    -rw-r--r-- 1 0 root   36M 5月  10 12:10 etc.tar

    -rw-r--r-- 1 0 root   9.6M 5月  10 12:14 etc.tar.bz2    #这个常用

    -rw-r--r-- 1 0 root   12M 5月  10 12:11 etc.tar.gz    #这个常用

    -rw-r--r-- 1 0 root   7.7M 5月  10 12:16 etc.tar.xz   #这个压缩比例最高,压缩的时间是最长

    9.2  zip管理压缩文件

    zip软件包解压缩命令:

    zip是压缩程序,unzip是解压程序。

    例1:压缩文件:

    [root@test ~]# zip a.zip /etc/passwd

    例2:将所有.jpg的文件压缩成一个zip包

    [root@test ~]# zip all.zip *.jpg  
    例3:压缩一个目录

    [root@test ~]# zip -r grub.zip /boot/grub   #一般不用

    解压缩:

    [root@test ~]# unzip grub.zip

    [root@test ~]# unzip grub.zip -d /opt/  #  -d  解压到指定的目标/opt

     

     

    1.4  了解gzip-bzip2- xz管理压缩文件-file-sort查看文件

    我们创建压缩的TAR存档,TAR命令它支持三种不同的压缩方式。

         gzip压缩速度最快;

         bzip2压缩生成的文件比gzip小,但使用不如gzip广;

         xz压缩工具相对较新,但是会提供最佳的压缩率

    1.4.1 压缩工具

    压缩工具:gzip  bzip2  zip xz

    常见的压缩格式: .gz  .bz2   .xz  .zip

    语法格式:

    压缩

    gzip 文件  ====》  gzip a.txt   =====》 a.txt.gz

    bzip2 文件 ===》 bzip2 b.txt  =====》 b.txt.bz2

    xz 文件 ===》xz c.txt ===》c.txt.xz

    [root@test ~]# mkdir xuegod

    [root@test ~]# touch  xuegod/a.txt

    [root@test ~]# gzip xuegod/a.txt

    [root@test ~]# ls xuegod/a*

    xuegod/a.txt.gz

    注:只能对文件进行压缩,且压缩后源文件会消失,一般不用。

    (bzip2,xz这两个工具可以通过添加参数-k来保留下源文件)

    [root@test ~]# cp /etc/passwd 1.txt

    [root@test ~]# bzip2 -k 1.txt

    [root@test ~]# ls  1.txt.bz2

    [root@test ~]# xz -k 1.txt

    [root@test ~]# ls 1.txt.xz

    解压:

    gzip  -d   文件

    bzip2 -d   文件   -k 保留源文件

    xz  -d   文件    或   unxz  文件    -k 保留源文件

    例:

    [root@panda mnt]# gzip -d 1.txt.bz2

    [root@test ~]# bzip2 -d 1.txt.bz2

    [root@panda mnt]# xz -d 1.txt.bz2

     

    1.4.2  file查看文件

    file命令

    作用: file - determine file type  #确定文件类型

    用法: file /etc/passwd

    注:linux系统不根据后缀名识别文件类型

    用file命令查看文件的类型。

    [root@test ~]# file /etc/passwd

    /etc/passwd: ASCII text

     

    1.4.3  按一定规则排序查看文件

    查看文件:

    [root@test ~]# ls -ltr    按时间排序  t 表示时间,  -r 从小到大,不加r参数由大到小

    [root@test ~]# ls -lSr  按大小排序  -r 从小到大 

    [root@test ~]# ls -lSrh  按大小排序  -r 从小到大  ,加-h 参数,看大小,更清楚

    [root@test ~]# ls -lS   从大到小

    查看目录:

    [root@test ~]# du -sh /etc   看某个目录大小

    查看分区大小:

    [root@test ~]# df -h  可以快速查看磁盘大小的存储空间

     

    1.4.4  排序:处理大量数据时会用到的命令sort

    例1:默认按字母规则进行排序

    [root@test ~]# cat  /etc/passwd | sort | more

    例2: 按数据排序

    [root@test ~]# vim file2   #每行随意写一些数字

    例2: 按数据排序,默认从小到大

    2

    23

    231

    [root@panda mnt]# sort -n file2  #-n默认从小到大 

    [root@test ~]# sort  -r file2   #-r 反序排序(升序变成降序进行排序) 从大小到

     

    例3:支持按月份排序

    [root@test ~]# vim  file3  #写入以下内容

    January

    March

    April

    February

    [root@test ~]# sort -M file3

    April

    February

    January

    March

    例4:组合使用

         -t 指定一个用来区分键位置字符

        -k 后面跟数字,指定按第几列进行排序

         -r 反序排序(升序变成降序进行排序)

     

    [root@test ~]# sort  -t ":" -k3 -r /etc/passwd | more  #按: 做分隔符,以第3列,也就是用户UID,来从大到小排序

    [root@test ~]# du -h  /etc | sort  -r | more  #把etc目录下所有文件,按从大到小排序

  • 相关阅读:
    python 面向对象类成员(字段 方法 属性)
    python 面向对象三大特性(封装 多态 继承)
    python 正则
    python 反射机制 ( 广泛应用于URL参数)
    python 导入模块
    python 字符串格式化 ( 百分号 & format )
    python time
    python filter
    【工作感悟】——揭开“PM”的面纱
    【SSH】——spring的控制反转和依赖注入
  • 原文地址:https://www.cnblogs.com/hackerlin/p/11272640.html
Copyright © 2011-2022 走看看