当前位置: 首页 > news >正文

【linux】(17)压缩和解压

tar

tar 是一个用于创建、维护、修改和解压缩存档文件的 Linux 命令。tar 常常用于备份文件或者将多个文件打包成一个文件以便于传输或存储。以下是 tar 命令的详细教程,包括常用选项和示例:

基本语法

tar [选项] [文件或目录]

常用选项

  • -c:创建一个新的存档。
  • -x:从存档中提取文件。
  • -t:列出存档中的文件。
  • -v:显示操作过程(verbose),通常与其他选项配合使用以显示详细信息。
  • -f:指定存档文件的名称。在使用时,-f 后面紧跟目标 tar 文件名。
  • -z:使用 gzip 压缩或解压缩文件(扩展名通常为 .tar.gz.tgz)。
  • -j:使用 bzip2 压缩或解压缩文件(扩展名通常为 .tar.bz2.tbz)。
  • -J:使用 xz 压缩或解压缩文件(扩展名通常为 .tar.xz)。
  • -C:改变到指定目录。例如,从存档中提取时,将文件解压到指定目录。

常见用法

  1. 创建 tar 存档

    将目录 dir/ 打包为 archive.tar

    tar -cvf archive.tar dir/
    
  2. 创建压缩存档

    使用 gzip 压缩:

    tar -cvzf archive.tar.gz dir/
    

    使用 bzip2 压缩:

    tar -cvjf archive.tar.bz2 dir/
    

    使用 xz 压缩:

    tar -cvJf archive.tar.xz dir/
    
  3. 提取(解压缩)tar 存档

    archive.tar 中提取文件:

    tar -xvf archive.tar
    

    从压缩过的存档中提取文件:

    tar -xvzf archive.tar.gz    # gzip 压缩
    tar -xvjf archive.tar.bz2   # bzip2 压缩
    tar -xvJf archive.tar.xz    # xz 压缩
    
  4. 列出存档内容

    查看存档 archive.tar 中包含的文件:

    tar -tvf archive.tar
    
  5. 解压缩到指定目录

    将存档解压缩到 target-directory/

    tar -xvf archive.tar -C target-directory/
    
  6. 附加文件到现有存档

    file.txt 添加到 archive.tar

    tar -rvf archive.tar file.txt
    

注意事项

  • 使用 -f 选项时,tar 要求目标文件名紧跟在选项后面。
  • tar 的压缩和解压缩选项 -z, -j, 和 -J 不能混合使用,每次操作要确定只采用一种压缩方式。

了解这些基本用法后,你就能有效地使用 tar 命令来管理 Linux 环境中的文件存档。如果需要进一步学习,可以查看 tar 的手册页,命令如下:

man tar

gzip

gzipgunzip 是 Unix 和 Linux 系统中常用的命令行工具,用于文件压缩和解压缩。gzip 用于压缩文件,而 gunzip 用于解压缩。它们通常与其他工具(如 tar)结合使用以管理压缩存档。

gzip和gunzip

gzip 是用于将文件压缩为 .gz 格式的工具。压缩后的文件通常比原始文件小,因此可以节省存储空间或加快传输速度。

基本语法
gzip [选项] [文件名]
常用选项
  • -c:将输出发送到标准输出(stdout),而不是覆写原始文件。
  • -d:解压缩文件。这与使用 gunzip 的效果相同。
  • -k:在压缩时保留原文件。
  • -r:递归压缩目录中的所有文件。
  • -v:显示详细的压缩信息。
  • -1-9:指定压缩级别。-1 为最快(最低压缩),-9 为最慢(最高压缩)。默认使用 -6
示例
  1. 压缩文件

    file.txt 压缩为 file.txt.gz

    gzip file.txt
    
  2. 压缩文件并保留原文件

    使用 -k 选项保留原始文件:

    gzip -k file.txt
    
  3. 将输出发送到标准输出

    压缩 file.txt 并输出到标准输出,而不创建 .gz 文件:

    gzip -c file.txt > file.txt.gz
    
  4. 递归压缩目录中的文件

    压缩 dir/ 目录中的所有文件:

    gzip -r dir/
    
  5. 指定压缩级别

    使用最高压缩级别(可能较慢):

    gzip -9 file.txt
    

gunzip

gunzip 通常与 gzip 配合使用,用于解压缩 .gz 文件。

基本语法
gunzip [选项] [压缩文件名]
常用选项
  • -c:将解压缩输出发送到标准输出,而不覆写原文件。
  • -k:在解压缩时保留压缩文件。
  • -v:显示详细的解压缩信息。
示例
  1. 解压缩文件

    file.txt.gz 解压缩为 file.txt

    gunzip file.txt.gz
    
  2. 解压缩并将输出发送到标准输出

    将解压缩的内容输出到标准输出:

    gunzip -c file.txt.gz > file.txt
    
  3. 保留压缩文件

    解压缩时保留原始压缩文件:

    gunzip -k file.txt.gz
    

结合使用 tar

压缩和解压缩目录通常结合 targzip 使用。创建 .tar.gz 文件的命令为:

tar -cvzf archive.tar.gz directory/

解压 .tar.gz 文件:

tar -xvzf archive.tar.gz

通过掌握以上命令和选项,你可以灵活地使用 gzipgunzip 来压缩和解压缩文件,从而更有效地管理系统中的文件和目录。对于更多详细信息,可以访问手册页:

man gzip
man gunzip

ZIP

在 Linux 中,zip 是一个常用的压缩工具,用于将文件和目录压缩成 .zip 格式的压缩包。

安装 zip

在大多数 Linux 发行版中,zip 工具可能已经预安装。如果没有,你可以使用包管理器进行安装:

  • 对于基于 Debian 的系统(如 Ubuntu):
sudo apt update sudo apt install zip
  • 对于基于 Red Hat 的系统(如 CentOS):
sudo yum install zip
  • 对于基于 Arch 的系统(如 Manjaro):
sudo pacman -S zip

基本用法

  1. 压缩文件 将单个文件压缩成 .zip 文件:
zip archive_name.zip file1

这里 archive_name.zip 是压缩文件的名称,file1 是要压缩的文件。

  1. 压缩多个文件 同时将多个文件压缩到同一个 .zip 文件中:
zip archive_name.zip file1 file2 file3
  1. 压缩目录 使用 -r(递归)选项来压缩整个目录及其子目录:
zip -r archive_name.zip directory_name/

高级用法

  1. 排除特定文件 使用 -x 选项来排除不想压缩的文件或目录:
zip -r archive_name.zip directory_name/ -x file_to_exclude
  1. 分卷压缩 如果需要将压缩文件分成多个较小的部分,可以使用 -s 选项来指定每个分卷的大小。例如,将压缩文件分成 50MB 的部分:
zip -r -s 50m archive_name.zip directory_name/
  1. 设置压缩等级 使用 -0-9 的选项来设置压缩等级,其中 -0 表示存储(无压缩),-9 表示最大压缩:
zip -r -9 archive_name.zip directory_name/
  1. 使用密码保护 使用 -e 选项来为压缩文件设置密码保护:
zip -e archive_name.zip file1

命令执行后,系统会提示你输入密码。

解压缩

要解压缩 .zip 文件,可以使用 unzip 命令。如果尚未安装 unzip,可以使用与安装 zip 相同的方法进行安装。

  • 解压缩 .zip 文件到当前目录:
unzip archive_name.zip
  • 解压缩 .zip 文件到指定目录:
unzip archive_name.zip -d destination_directory

相关文章:

【linux】(17)压缩和解压

tar tar 是一个用于创建、维护、修改和解压缩存档文件的 Linux 命令。tar 常常用于备份文件或者将多个文件打包成一个文件以便于传输或存储。以下是 tar 命令的详细教程,包括常用选项和示例: 基本语法 tar [选项] [文件或目录]常用选项 -c&#xff1…...

摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现

随着科技的不断进步,摄像机视频分析软件的发展已经为我们的生活带来了许多便捷。其中,LiteAIServer视频智能分析平台的玩手机打电话检测算法技术尤为突出,它利用先进的图像处理和人工智能技术,能够自动识别并监控视频中的玩手机或…...

springboot购物推荐网站的设计与实现(代码+数据库+LW)

摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求,创建了一个计算机管理东大每日推购物推荐网站的方案。文章介…...

【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近用Unity3D的HDRP(高清渲染管…...

QT基础 UI编辑器 QT5.12.3环境 C++环境

一、UI编辑器 注意:创建工程时,要勾上界面按钮 UI设计师界面的模块 UI编辑器会在项目构建目录中自动生成一个ui_xxx.h(构建一次才能生成代码),来表示ui编辑器界面的代码,属于自动生成的,一定不…...

计算机网络socket编程(5)_TCP网络编程实现echo_server

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(5)_TCP网络编程实现echo_server 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交…...

go语言闭包捕获的是变量的引用而不是变量的值

在 Go 语言中,闭包捕获的是变量的引用,而不是变量的值。这意味着闭包会引用循环变量或外部变量的实际内存位置,而不是在闭包创建时复制变量的值。这种行为有时会导致意外的结果,尤其是在循环中创建多个闭包时。 闭包捕获变量的引…...

周期法频率计的设计

目录 周期法频率计 分析: 设计过程: 周期法频率计 对于低频信号,应用周期法进行测频。周期法测频的基本原理是:应用标准频率信号统计被测信号两个相邻脉冲之间的脉冲数,然后通过脉冲数计算出被测信号的周期&#xff…...

【Linux】drop cache与reclaim的区别

前言 在 Linux 内核中,drop cache和reclaim是两种不同的内存管理机制,它们的目的和实现方式有所不同。 Drop Cache 定义 drop cache 是一种手动操作,允许用户通过向 /proc/sys/vm/drop_caches 写入特定的值,直接清除系统中的缓…...

【Linux课程学习】:命令行参数,环境变量

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 命令行参数: 用命令行参数实现不同…...

HTB:WifineticTwo[WriteUP]

目录 连接至HTB服务器并启动靶机 信息搜集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机开放端口进行脚本、服务扫描 使用curl访问靶机8080端口 使用浏览器直接访问/login路径 漏洞利用 使用searchsploit搜索该WebAPP漏洞 Payload USER_FLAG:bb…...

mac安装Pytest、Allure、brew

安装环境 安装pytest 命令 pip3 install pytest 安装allure 命令:brew install allure 好吧 那我们在安装allure之前 我们先安装brew 安装brew 去了官网复制了命令 还是无法下载 如果你们也和我一样可以用这个方法哦 使用国内的代码仓库来执行brew的安装脚本…...

关于相机选型的一些参数说明

上一篇:关于相机的一些参数计算(靶面、视野等) 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS:视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…...

深入解析 Cron 表达式高级用法:Spring 与 Linux Crontab 的全面对比与实践20241120

深入解析 Cron 表达式高级用法:Spring 与 Linux Crontab 的全面对比与实践 任务调度是后台服务中的重要组成部分,无论是定期数据备份、日志归档还是周期性报表生成,Cron 表达式始终是描述这些任务规则的核心工具。本文将聚焦 Spring Cron 表…...

24软专 数据结构

1、A[n],k,将数组向右循环移动k位。要求时间复杂度O(n),空间O(1)。 思路:采用三次反转数组的操作,可以实现时间复杂度为O(n),空间复杂度为O(1)的算法。 void moveElem(int array[],int k,int length){//a…...

洛谷 P1616 疯狂的采药 C语言 记忆化搜索

题目: https://www.luogu.com.cn/problem/P1616?contestId215526 完全背包问题,最后一个超出空间了。完全背包和就是无限次的拿,公式跟01背包差不多。 但是,只有当前能拿和拿不下,换下一个。注意要处理好边界条件。…...

#渗透测试#红蓝攻防#HW#SRC漏洞挖掘01之静态页面渗透

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

element-plus入门教程:Button

一、Button组件概述 Element Plus的Button组件是一个常用的操作按钮,提供了多种类型、尺寸、状态等配置选项,以满足不同的交互需求。 二、安装Element Plus 在Vue 3项目中,可以通过npm或yarn来安装Element Plus。 npm install element-pl…...

oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist

oneplus6线刷android10.0.1 oneplus6线刷包(官方android10.0.1)下载、线刷教程: OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip 启用开发者模式 设置 / 连续点击6次版本号 : 启用开发者模式设置/开发者模式/{打开 usb调试, 打开 网络adb调试,…...

flux的版本

1.flux1-dev.safetensors https://huggingface.co/black-forest-labs/FLUX.1-devhttps://huggingface.co/black-forest-labs/FLUX.1-dev原生的23.8G的模型。原生12B的模型,float16的。需要配合ae.safetensors,flux1-dev.safetensors以及clip-l和T5的权重使用,注意ae.sft和f…...

Java微服务在Istio中出现“偶发503 no healthy upstream”?7分钟定位Sidecar健康检查盲区与Liveness Probe冲突真相

第一章:Java微服务在Istio中偶发503问题的现象与影响在基于Istio构建的服务网格环境中,Java微服务(尤其是采用Spring Cloud Kubernetes或原生Spring Boot Istio Sidecar部署模式)频繁出现偶发性HTTP 503 Service Unavailable响应…...

S2-Pro+C语言教学系统:代码逻辑讲解与典型错误自动纠正

S2-ProC语言教学系统:代码逻辑讲解与典型错误自动纠正 1. 智能编程助教初体验 第一次看到S2-Pro在C语言教学中的应用效果时,确实让人眼前一亮。想象一下,当学生提交一段指针运算代码后,系统不仅能指出错误,还能像经验…...

[Linux][虚拟串口]x一个特殊的字节

目标:构建带上下文记忆的猫咪聊天机器人 先看代码: from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.messages import SystemMessage,HumanMessage,AIMessage import os from dote…...

Lychee Rerank在遥感影像分析中的应用:多源地理数据关联

Lychee Rerank在遥感影像分析中的应用:多源地理数据关联 1. 引言 每天,卫星和无人机都在产生海量的遥感影像数据。地质勘探团队需要从数万张卫星图片中找出可能的矿藏迹象,环境监测人员要追踪森林覆盖变化,城市规划者则要分析城…...

VISA 标准深度剖析:寄存器基控制规范与函数接口研究

VISA 标准深度剖析:寄存器基控制规范与函数接口研究 VISA(Virtual Instrument Software Architecture)是仪器控制领域的标准 API,它为不同总线(GPIB、USB、LAN、PXI 等)提供了统一的编程接口。本文将 VISA 函数按功能分为 8 大类,并逐一解析其作用、核心函数及使用场景…...

IDEA 好用的ai插件 Windsurf

文章目录 前言一、Windsurf 插件功能二、IDEA安装三、登录Windsurf四、Windsurf简单使用介绍 前言 在 IntelliJ IDEA 中,Windsurf 是一款专注于 AI 代码辅助的插件,能够提升开发效率。以下是关于该插件的关键信息和使用方法: 提示&#xff1…...

MIKE URBAN中污水处理厂如何进行概化

01 前言应用厂网一体化耦合模型研究水厂间调度和厂前溢流入河污染量等内容时,由于不需要关注污水处理厂内部的具体处理工艺,需要对污水处理厂的关键设施进行概化处理。02 水厂资料收集收集污水处理的工艺流程图和设施设计参数。依据厂网一体化模型的研究…...

如何将微信聊天记忆转化为数字珍藏:WeChatMsg的数据主权革命

如何将微信聊天记忆转化为数字珍藏:WeChatMsg的数据主权革命 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

AI 开发实战:实验和试点项目怎么记录,才不会做完就散

AI 开发实战:实验和试点项目怎么记录,才不会做完就散 一、这个问题为什么值得专门拿出来做? 在 AI 工程落地里,真正拖慢团队的往往不是模型本身,而是流程和协作方式没有跟上。 围绕“实验和试点项目怎么记录&#xff0…...

MD500E无感观测器模型:顺逆风检测与启动功能,低速性能优越的浮点模型

MD500E无感观测器模型顺逆风检测和启动。 逆风可刹停,也可直接切入闭环运行。 低速性能良好,可零速启动,堵转不发散,可正反转切换。 提供原版论文。 电阻、电感、磁链偏差20%情况下,对观测器性能无影响。 注 本模型是M…...