文件的归档和解压缩

您所在的位置:网站首页 文档是压缩包吗 文件的归档和解压缩

文件的归档和解压缩

2024-07-14 21:58| 来源: 网络整理| 查看: 265

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目录 打包

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

或:

~]#  tar cvf grub.tar /boot/grub/        # 执行tar命令后    默认从成员名中删除开头的“/”

  /boot/grub/splash.xpm.gz

 ~]# ls gurb.tar                          #查看打包文件

 ~]# tar xvf grub.tar                # 解压缩打包文件

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

boot/grub/splash.xpm.gz

 ~]# ls  boot  #得到boot目录

例1:指定解压位置   -C

 ~]#  tar xvf grub.tar.bz2 -C /opt/            tar命令会自动 从成员名中删除开头的“/”

/boot/grub/

/boot/grub/splash.xpm.gz

 ~]# ls /opt/

boot

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

 ~]# mkdir back

 ~]# cp /etc/passwd back/

 ~]# tar -cvf back.tar /boot/grub  back/ /etc/passwd     # tar: 从成员名中删除开头的“/”

/boot/grub/

/boot/grub/splash.xpm.gz

back/

back/passwd

/etc/passwd

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

~]# tar -tvf grub.tar         # List all files in archive.tar verbosely.

例4:对比 加v的效果

 ~]# tar -xf grub.tar

 ~]# 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 包

 ~]# tar cvf etc.tar /etc            #打包/etc目录

 ~]# tar zcvf etc.tar.gz /etc     #归档压缩,注意备份的名字后缀

 ~]# tar zxvf etc.tar.gz            #解压缩

例2:创建.tar.bz2包

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

 ~]#  tar -jcvf etc.tar.bz2 /etc         #压缩打包文件etc.tar

 ~]#  tar -jxvf etc.tar.bz2 /etc         #解压缩

 ~]#  tar jxvf etc.tar.bz2 -C  /opt    #解压到opt目录下  加C指定解压目录

 

例3:创建.tar.xz包

 ~]#  tar -Jcvf etc.tar.xz /etc

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

或:

 ~]#  tar -Jxvf etc.tar.xz  #

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

 ~]# 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      # 可见这个压缩比例最高,压缩的时间是最长

 

总结:

    格式:    tar.gz             tar.bz2         tar.xz     压缩:    tar -zcvf         tar -jcvf        tar -Jcvf     解压缩: tar -zxvf         tar -jxvf        tar -xvf

      特征:           速度快                   压缩比较较高        压缩比例最高但耗时最长

加参数 C 可指定解压缩目录

 

2. zip管理压缩文件(较不常用)

zip软件包解压缩命令:

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

例1:压缩文件:

~]# zip a.zip /etc/passwd

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

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

~]# zip -r grub.zip /boot/grub    #一般不用

 

解压缩:

 ~]# unzip grub.zip

 ~]# unzip grub.zip -d /opt/  #  -d  表解压到指定的目标/opt

 

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

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

     gzip压缩速度最快;

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

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

3.1 压缩工具

压缩工具:            gzip  bzip2   zip    xz

对应的压缩格式: .gz    .bz2     .zip   .xz

 

压缩

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

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

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

例:

 ~]# mkdir xuegod

~]# touch  xuegod/a.txt

 ~]# gzip xuegod/a.txt

 ~]# ls xuegod/a*

xuegod/a.txt.gz

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

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

 ~]# cp /etc/passwd 1.txt

 ~]# bzip2 -k 1.txt

 ~]# ls  1.txt.bz2

 

~]# xz -k 1.txt

 ~]# ls 1.txt.xz

 

解压:

gzip  -d   文件

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

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

例:

]# gzip -d 1.txt.bz2

]# bzip2 -d 1.txt.bz2

]# xz -d 1.txt.bz2

 

3.2  file查看文件

file命令

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

用法: file /etc/passwd

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

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

 ~]# file /etc/passwd

/etc/passwd: ASCII text

 

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

查看文件:

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

 ~]# ls -lSr    #按大小排序  -r 则从小到大 

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

 ~]# ls -lS    # 从大到小

查看目录:

 ~]# du -sh /etc     # 看某个目录大小

查看分区大小:

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

 

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

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

 ~]# cat  /etc/passwd | sort | more

例2: 按数据排序

 ~]# vim file2   #每行随意写一些数字

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

]# sort -n file2           #-n默认从小到大

2

23

231

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

例3:按月份排序

 ~]# vim  file3  #写入以下内容

January

March

April

February

 ~]# sort -M file3      #按月份排序

April

March

February

January

例4:组合使用

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

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

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

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3