Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

2023-11-02

Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

Linux 压缩、解压文件的方式有如下几种:

1. tar

tar 是一种常用的打包工具,可以将多个文件或目录打包成一个 tar 包,也可以将一个 tar 包解压缩到指定的目录。

1.1. 压缩:

# 将多个文件或目录打包成一个 tar 包,-c 表示创建 tar 包,-v 表示显示详细信息,-f 表示指定文件名
tar -cvf filename.tar file1 file2 dir1

# 将一个目录及其子目录下的所有文件打包成一个 tar 包,-z 表示使用 gzip 压缩,-f 表示指定文件名
tar -czf filename.tar.gz dir1

# 将一个目录及其子目录下的所有文件打包成一个 tar 包,-j 表示使用 bzip2 压缩,-f 表示指定文件名
tar -cjf filename.tar.bz2 dir1

1.2. 解压:

# 将一个 tar 包解压缩到指定目录下,-x 表示解压,-v 表示显示详细信息,-f 表示指定文件名
tar -xvf filename.tar -C /path/to/directory

# 将一个 gzip 压缩的 tar 包解压缩到指定目录下,-z 表示使用 gzip 解压缩
tar -zxvf filename.tar.gz -C /path/to/directory

# 将一个 bzip2 压缩的 tar 包解压缩到指定目录下,-j 表示使用 bzip2 解压缩
tar -jxvf filename.tar.bz2 -C /path/to/directory

1.3. tar 命令各参数含义

tar 命令是 Linux 下常用的打包和压缩工具,用于将多个文件或目录打包成一个 tar 包,也可以将一个 tar 包解压缩到指定的目录。tar 命令的各个参数的含义如下:

tar [选项] [文件名] [文件列表]

其中,选项包括:

  • -c, --create:创建一个 tar 包。可以和 -f 参数一起使用,指定生成的 tar 包的文件名;
  • -x, --extract, --get:解包一个 tar 包。可以和 -f 参数一起使用,指定要解压缩的 tar 包的文件名;
  • -r, --append:将一个或多个文件追加到已存在的 tar 包的末尾。可以和 -f 参数一起使用,指定要追加的 tar 包的文件名;
  • -u, --update:仅将新于 tar 包中已有的文件或目录添加到 tar 包中。可以和 -f 参数一起使用,指定要更新的 tar 包的文件名;
  • -t, --list:列出一个 tar 包中包含的文件列表。可以和 -f 参数一起使用,指定要列出的 tar 包的文件名;
  • -f, --file=ARCHIVE:指定要操作的 tar 包的文件名;
  • -v, --verbose:在操作的过程中显示详细信息;
  • -z, --gzip, --ungzip:在 tar 包中使用 gzip 压缩;
  • -j, --bzip2:在 tar 包中使用 bzip2 压缩;
  • -C, --directory=DIR:指定解压缩到的目录。

例如,将多个文件或目录打包成一个 tar 包,可以使用以下命令:

tar -cvf filename.tar file1 file2 dir1

其中,-c 表示创建 tar 包,-v 表示显示详细信息,-f 后面跟着的是生成的 tar 包的文件名,file1 file2 dir1 是要打包的文件或目录列表。

将一个 tar 包解压缩到指定目录下,可以使用以下命令:

tar -xvf filename.tar -C /path/to/directory

其中,-x 表示解压缩,-v 表示显示详细信息,-f 后面跟着的是要解压缩的 tar 包的文件名,-C 后面跟着的是解压缩到的目录。

2. gzip、gunzip

gzip 是一种常用的压缩工具,可以将单个文件压缩成一个 gzip 文件,也可以将一个 gzip 文件解压缩。

2.1. 压缩:

# 将一个文件压缩成 gzip 格式,-c 表示将压缩结果输出到标准输出,-v 表示显示详细信息
gzip -cv filename > filename.gz

2.2. 解压:

# 将一个 gzip 文件解压缩,-d 表示解压
gunzip -d filename.gz

2.3. gzip、gunzip 命令各参数含义

gzip 和 gunzip 命令是 Linux 下常用的压缩和解压缩工具,用于将单个文件压缩成一个 gzip 文件,也可以将一个 gzip 文件解压缩。

2.3.1. gzip 命令的各个参数的含义如下:

gzip [选项] 文件名

其中,选项包括:

  • -c, --stdout:将压缩结果输出到标准输出;
  • -d, --decompress, --uncompress:解压缩 gzip 文件;
  • -f, --force:强制压缩,覆盖已有文件;
  • -h, --help:显示帮助信息;
  • -l, --list:列出 gzip 文件的详细信息;
  • -n, --no-name:不保存原文件名到 gzip 文件中;
  • -q, --quiet:不显示压缩结果信息;
  • -r, --recursive:递归处理目录下的所有文件;
  • -t, --test:测试 gzip 文件的完整性;
  • -v, --verbose:显示压缩结果信息;
  • -1-9:指定压缩级别,数字越大压缩比越高,但所需时间也越长。

例如,将一个文件压缩成 gzip 格式,并将压缩结果输出到标准输出,可以使用以下命令:

gzip -c filename > filename.gz

其中,-c 表示将压缩结果输出到标准输出,filename 是要压缩的文件名,> filename.gz 表示将压缩结果重定向到 filename.gz 文件中。

2.3.2. gunzip 命令的各个参数的含义如下:

gunzip [选项] 文件名

其中,选项包括:

  • -c, --stdout:将解压缩结果输出到标准输出;
  • -f, --force:强制解压缩,覆盖已有文件;
  • -h, --help:显示帮助信息;
  • -l, --list:列出 gzip 文件的详细信息;
  • -q, --quiet:不显示解压缩结果信息;
  • -r, --recursive:递归处理目录下的所有文件;
  • -t, --test:测试 gzip 文件的完整性;
  • -v, --verbose:显示解压缩结果信息。

例如,将一个 gzip 文件解压缩,可以使用以下命令:

gunzip filename.gz

其中,filename.gz 是要解压缩的 gzip 文件名。

3. zip、unzip

zip 是一种常用的压缩工具,可以将多个文件或目录打包成一个 zip 文件,也可以将一个 zip 文件解压缩到指定的目录。

3.1. 压缩:

# 将多个文件或目录打包成一个 zip 文件
zip -r filename.zip file1 file2 dir1

3.2. 解压:

# 将一个 zip 文件解压缩到指定目录下
unzip filename.zip -d /path/to/directory

3.3. zip、unzip 命令各参数含义

3.3.1. zip 命令参数含义

zip 命令用于将多个文件或目录归档成一个压缩文件,下面是常用的参数:

  • -r 递归地压缩目录及其子目录下的所有文件。
  • -m 将文件移动到压缩文件中,而不是复制它们。这意味着被压缩的文件将被删除。
  • -j 将目录信息从压缩文件中删除,仅压缩文件本身。
  • -q 静默模式,不显示压缩过程中的信息。
  • -v 显示压缩过程中的详细信息。
  • -c 创建一个新的压缩文件,如果该文件已经存在,则覆盖它。
  • -u 只更新压缩文件中的新文件或修改过的文件。
  • -f 指定压缩文件名。

例如,要将目录 /home/user/docs 下的所有文件压缩成一个名为 docs.zip 的压缩文件,可以使用以下命令:

zip -r docs.zip /home/user/docs

3.3.2. unzip 命令参数含义

unzip 命令用于解压缩 .zip 格式的压缩文件,下面是常用的参数:

  • -l 列出压缩文件中的所有文件,但不解压缩它们。
  • -n 不要覆盖现有文件。
  • -o 覆盖现有文件。
  • -q 静默模式,不显示解压缩过程中的信息。
  • -v 显示解压缩过程中的详细信息。
  • -d 指定解压缩后的目录。

例如,要解压缩名为 docs.zip 的压缩文件到目录 /home/user/unzip 下,可以使用以下命令:

unzip docs.zip -d /home/user/unzip

4. 7z

7z 是一种高压缩比的压缩工具,可以将多个文件或目录打包成一个 7z 文件,也可以将一个 7z 文件解压缩到指定的目录。

4.1. 压缩:

# 将多个文件或目录打包成一个 7z 文件
7z a filename.7z file1 file2 dir1

4.2. 解压:

# 将一个 7z 文件解压缩到指定目录下
7z x filename.7z -o/path/to/directory

以上是 Linux 压缩、解压文件的几种常用方式,根据需要选择不同的方式。

4.3. 7z 命令各参数含义

7z 命令是一个高效的压缩和解压缩工具,常用于Linux和Windows平台。下面是常用的参数:

  • a 创建一个压缩文件。
  • -t 指定压缩文件的格式,常用格式有:7z、zip、gzip、bzip2、tar等。
  • -mx 指定压缩级别,数字越大,压缩比越高,但耗费的时间也越多。取值范围为0-9,其中0表示不压缩,9表示最高压缩级别。
  • -p 设置压缩文件密码。
  • -mhe=on 启用文件头加密。
  • -mmt 设置多线程压缩,可以加快压缩速度。
  • -m0=lzma2 指定压缩算法,常用的算法有:lzma2、lzma、ppmd、bzip2等。
  • -v 指定压缩包大小,支持 K(千字节)、M(兆字节)、G(吉字节)和 B(字节)等单位。
  • -r 递归压缩目录及其子目录下的所有文件。
  • -x 排除某些文件或目录。
  • -o 指定压缩文件输出路径和名称。

例如,要将目录 /home/user/docs 下的所有文件压缩成一个使用 lzma2 算法的压缩文件,并设置密码为 mypassword,可以使用以下命令:

7z a -t7z -m0=lzma2 -mx=9 -mhe=on -p'mypassword' docs.7z /home/user/docs/*

要解压缩名为 docs.7z 的压缩文件并将其解压缩到目录 /home/user/unzip 下,可以使用以下命令:

7z x docs.7z -o/home/user/unzip -p'mypassword'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法 的相关文章

  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

    我有一个 dotnet SDK sln and a build proj with
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • Linux 上的“软/硬 nofile”是什么意思

    当我尝试在RedHat EL5上安装软件时 我得到了错误 软 硬nofile的期望值是4096 而默认值是1024 我设法增加了这个数字 但我不知道参数是什么 他们指的是软链接和硬链接吗 我改变的方法是 a 修改 etc security
  • 使用 .htaccess 启用 PHP 短标签

    我在自己的 Centos 服务器上设置了 Apache 并具有多个虚拟 Web 服务器 并且我希望仅为位于以下位置的其中一个 Web 服务器启用 PHP 短标记 var www ostickets html 我可以通过添加成功启用短标签sh
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • Linux 阻塞与非阻塞串行读取

    I have 这段代码 https stackoverflow com questions 6947413 how to open read and write from serial port in c用于在Linux中从串行读取 但我不
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 将 bash 脚本作为守护进程运行

    我有一个脚本 它每 X 次运行我的 PHP 脚本 bin bash while true do usr bin php f my script php echo Waiting sleep 3 done 我怎样才能将它作为守护进程启动 要从
  • 有没有办法让 Linux CLI IO 重定向持久化?

    我有多个管道命令 如下所示 find options grep options xargs grep options 它们中的每一个都可能产生我不感兴趣的错误 权限错误 文件名空格错误等 因此 我想将所有错误重定向到 dev null 我知
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo

随机推荐

  • 【C++】泛型编程

    为了让函数或者类有更好的复用性 C 引入了摸板的技术 让不同的数据类型 能使用到相同的函数或者类中去 这种编程的思想也叫做泛型编程 一 摸板 void Swap int left int right int temp left left r
  • Pandas系列学习(二):数据读取与输出

    平时工作中 主要会涉及到csv excel和sql等数据的导入与导出比较多 pandas库也内置了相应的函数进行处理读取与输出这些文件 首先 看看pd read csv 函数的语法格式如下 1 pd read csv pd read csv
  • ArcGIS:读取nc格式文件并导出为tif格式文件,降雨或温度NC等数据

    使用ArcGIS读取nc文件步骤 1 打开ArcGIS 在多维工具下选择 创建NetCDF栅格图层 2 输入nc文件 其他参数可忽略 点击确定 3 创建好后 右键点击图层 点击属性 选择 NetCDF 然后选择波段纬度 接着点击纬度对应的值
  • [XenServer] 修改默认安装XenServer系统盘(4G)大小

    安装XenServer系统盘默认大小为4G 安装前我们可以调整大小 注 此教程只适用于在全新安装XenServer的时候使用 已经安装过XenServer的无法修改系统盘 4G 大小 注 如果带数据重装 安装的时候一定要保证XenServe
  • day o1

    一java的发展史 1995年Sun公司发布Java1 0版本 1997年发布Java 1 1版本 1998年发布Java 1 2版本 2000年发布Java 1 3版本 2002年发布Java 1 4版本 2004年发布Java 1 5版
  • C2143 C4430 C2238错误

    原因是头文件互相包含了 错误1 error C2143 语法错误 缺少 在 lt 的前面 错误2 error C2238 意外的标记位于 之前 错误3 error C4430 缺少类型说明符 假定为int 注意 C 不支持默认int
  • SylixOS下定时器使用

    1 适用范围 本文档介绍SylixOS下实现定时器功能的方法 使用者应熟悉SylixOS以及SylixOS下的编程规范 2 实现方案 SylixOS提供标准定时器接口 用户可在应用层直接调用 下面列出定时器的创建 启动 停止以及删除等操作
  • VM关闭防火墙操作

    VM关闭防火墙操作 链接外网配置 setup 配置ip等 设置开启网卡 进入ifcfg eth0 vim etc sysconfig network scripts ifcfg eth0 修改 ONBOOT yes 重启网卡 service
  • 一、C语言进阶:文件操作

    1 文件操作 1 1 文件的输入输出 输出 使用printf 和命令行重定向 gt 实现文件输出 输入 使用scanf 和命令行重定向 lt 实现文件输入 include
  • Sass/Scss样式复用

    在团队开发中 复用代码能减少冗余 抹平编写风格的差异 或者在编写同主题的组件 统一文字 颜色 间隔等样式 复用样式代码是必不可少的 Sass提供四种样式复用的方法 import extend media mixin import Sass
  • Flutter 切换tabbar 视图重新渲染解决方法

    gt 底部tabbar点击page切换时 会重新加载页面 重新请求接口浪费资源 为解决这个尴尬处境 有个简易的办法在bottomtabbar类中 对 return scaffold body 加入indexedstack body Inde
  • e4a锁屏接收服务器信息,Arduino+ESP8266接收服务器信息

    上一篇文章 Arduino ESP8266上传数据到服务器 我们介绍了Arduino如何将数据上传到服务器上 与之相对应的是如何终端读取服务器的数据 在这一篇文章中我们将进行详细的讲解 为了便于说明 我们先演示一下如何 手动 的上传 读取数
  • Linux系统管理:虚拟机ESXi安装

    目录 一 理论 1 VMware Workstation 2 VMware vSphere Client 3 ESXi 二 实验 1 ESXi 7安装 一 理论 1 VMware Workstation 它是一款专业的虚拟机软件 可以在一台
  • Qt 命令行编译,VC命令行编译,调用nsis

    QT bat脚本 rd q s dist mkdir dist qmake exe helloworld pro spec win32 g CONFIG qtquickcompiler o dist cd dist mingw32 make
  • make[1]: *** Waiting for unfinished jobs....

    安装node js环境时候 make报错 报错信息 make 1 Waiting for unfinished jobs rm 490f1fcf42b2afac71d1c00fb593c736d4a65552 intermediate ma
  • Python执行JS代码的三种方式

    1 使用 js2py 基本操作 import js2py 执行单行js语句 js2py eval js console log abcd gt gt gt abcd 执行js函数 add js2py eval js function add
  • 基于session和token的身份认证方案

    一 基于session的身份认证方案 1 方案图示 2 比较通用的鉴权流程实现如下 在整个流程中有两个拦截器 第一个拦截器 AuthInteceptor是为了每一次的请求的时候都先去session中取user对象 如果session中有 就
  • 组合排列——回溯法的实践

    一 模板 对于回溯问题 可以给一个模板 result def backtracking 参数 if 终止条件 result add 路径 return for 选择 本层集合中元素 树中节点孩子的数量就是集合的大小 处理节点 backtra
  • 微信小程序 组件间关系

    完整微信小程序 Java后端 技术贴目录清单页面 必看 定义和使用组件间关系 有时需要实现这样的组件
  • Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    Linux 压缩 解压文件的 4 种方式 tar gzip gunzip zip unzip 7z命令使用方法 文章目录 Linux 压缩 解压文件的 4 种方式 tar gzip gunzip zip unzip 7z命令使用方法 1 t