当前位置: 代码迷 >> 综合 >> Linux常用命令之压缩解压缩命令详解(gzip、gunzip、bzip2、bunzip2、tar)
  详细解决方案

Linux常用命令之压缩解压缩命令详解(gzip、gunzip、bzip2、bunzip2、tar)

热度:39   发布时间:2023-12-25 07:03:41.0

压缩和解压缩:gzip(gunzip)和bzip2(bunzip2)

(1)gzip命令:压缩文件或目录

".gz"格式是 Linux中最常用的压缩格式,使用 gzip 命令进行压缩,其基本信息如下:

  • 命令名称:gzip。
  • 所在路径:/bin/gzip。
  • 执行权限:所有用户。
  • 功能描述:压缩文件或目录。

将/etc/services复制到/tmp/目录中进行压缩,不保留原文件,并查看压缩前后文件的大小;

如果需要压缩目录的话,需要使用"gzip -r";

[root@redhat tmp]# cp /etc/services .
[root@redhat tmp]# ls
services
[root@redhat tmp]# ls -l
总用量 628
-rw-r--r--. 1 root root 641020 3月  31 22:22 services
[root@redhat tmp]# gzip services
[root@redhat tmp]# ls
services.gz
[root@redhat tmp]# ls -l
总用量 128
-rw-r--r--. 1 root root 127223 3月  31 22:22 services.gz

(2)gunzip命令:解压缩文件或目录

".gz"格式是Linux中最常用的压缩格式,如果要解压缩".gz"格式,那么使用"gzip -d"和"gunzip "命令都可以。

gunzip 命令的基本信息:

  • 命令名称:gunzip。
  • 所在路径:/bin/gunzip。
  • 执行权限:所有用户。
  • 功能描述:解压缩文件或目录

使用gunzip命令进行解压缩,如果需要解压缩目录的话,需要使用"gunzip -r";

[root@redhat tmp]# ls
services.gz
[root@redhat tmp]# gunzip services.gz 
[root@redhat tmp]# ls
services

 bzip2(bunzip2)命令的用法和gzip(gunzip)命令的用法相似;

文件的归档、压缩操作(tar)

(1)tar命令:打包目录或解打包目录

".tar"格式的打包和解打包都使用 tar 命令,区别只是选项不同。 tar 命令的基本信息:

  • 命令名称:tar。
  • 所在路径:/bin/tar。
  • 执行权限:所有用户。
  • 功能描述:打包与解打包命令。

tar命令常见选项如下:

  • -c:创建归档
  • -x:解归档
  • -v:显示过程
  • -f:指定文件名
  • -C:指定解归档的目录路径
  • -z:将打包文件压缩成gzip格式
  • -j:将打包文件压缩成bzip2格式

1.1> 归档:即打包,常用于备份某个重要的目录

只归档不压缩

tar  -cvf  创建的归档文件名及路径  要归档的目录

[root@redhat tmp]# mkdir /tmp/backup
[root@redhat tmp]# tar -cvf /tmp/backup/yum.tar /etc/yum.repos.d
/etc/yum.repos.d/
/etc/yum.repos.d/packagekit-media.repo
/etc/yum.repos.d/rhel-source.repo
/etc/yum.repos.d/rhel-source.repo~

既归档、又压缩(gzipbzip2压缩格式)

tar  -czvf  创建的归档压缩文件名及路径  要归档的目录

[root@redhat tmp]# tar -czvf /tmp/backup/yum.tar.gz /etc/yum.repos.d
tar: 从成员名中删除开头的“/”
/etc/yum.repos.d/
/etc/yum.repos.d/packagekit-media.repo
/etc/yum.repos.d/rhel-source.repo
/etc/yum.repos.d/rhel-source.repo~
[root@redhat tmp]# ls ./backup
yum.tar  yum.tar.gz

tar  -cjvf 创建的归档压缩文件名及路径  要归档的目录

[root@redhat tmp]# tar -cjvf /tmp/backup/yum.tar.bz2 /etc/yum.repos.d
tar: 从成员名中删除开头的“/”
/etc/yum.repos.d/
/etc/yum.repos.d/packagekit-media.repo
/etc/yum.repos.d/rhel-source.repo
/etc/yum.repos.d/rhel-source.repo~
[root@redhat tmp]# ls ./backup/
yum.tar  yum.tar.bz2  yum.tar.gz

1.2> 解归档

解归档到原路径

tar  -xvf  归档文件名及路径

[root@redhat tmp]# tar -xvf /tmp/backup/yum.tar
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~

解归档到指定路径

tar  -xvf  归档文件名及路径  -C  指定解归档的目录路径

[root@redhat tmp]# tar -xvf /tmp/backup/yum.tar -C /tmp/backup/
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~
[root@redhat tmp]# ls ./backup/
etc  yum.tar  yum.tar.bz2  yum.tar.gz

1.3> 解压缩、解归档

解压缩、解归档到原路径

tar  -xzvf  归档压缩文件名及路径

[root@redhat tmp]# tar -xzvf /tmp/backup/yum.tar.gz
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~

tar  -xjvf  归档压缩文件名及路径

[root@redhat tmp]# tar -xjvf /tmp/backup/yum.tar.bz2
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~

解压缩、解归档到指定路径

tar  -xzvf  归档压缩文件名及路径  -C  指定解归档的目录路径

[root@redhat tmp]# tar -xzvf /tmp/backup/yum.tar.gz -C /tmp/backup/
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~

tar  -xjvf  归档压缩文件名及路径  -C  指定解归档的目录路径

[root@redhat tmp]# tar -xjvf /tmp/backup/yum.tar.bz2 -C /tmp/backup/
etc/yum.repos.d/
etc/yum.repos.d/packagekit-media.repo
etc/yum.repos.d/rhel-source.repo
etc/yum.repos.d/rhel-source.repo~