Linux文件打包与压缩

2023-05-16

1.文件打包与压缩

1.什么是文件压缩?

将多个文件或目录合并成为一个特殊的文件。比如: 搬家…脑补画面 img

2.为什么要对文件进行压缩?

当我们在传输大量的文件时,通常都会选择将该文件进行压缩,然后在进行传输。
首先:压缩后的文件会比压缩前的文件小。一个28G的文件夹压缩后能达到6G
其次:多个文件传输很慢,但单个文件传输会很快,同时还能节省网络的消耗。
(比如: 搬家时,单行李往外拿和打包后往外拿??你懂我意思?)

2.Windows的压缩包与Linux的压缩包能否互通?

在windows系统下,我们接触最多的压缩格式是 rar 或 zip ,但在Linux上使用最多的压缩格式是 zip 和 tar.gz 。当然不用担心,Linux上的压缩格式放在windows系统下都是可以正常打开的。
PS: Linux不支持 Windows下的 RAR 格式的压缩文件。Windows和Linux互通通常选择 zip

3.Linux下压缩包有哪些常见的类型

2.gzip打包与压缩

[root@ly ~]# yum install gzip -y
[root@ly ~]# gzip file      #对文件进行压缩
[root@ly ~]# zcat file.gz    #查看gz压缩后的文件
[root@ly ~]# gzip -d file.gz #解压gzip的压缩包

#使用场景:当需要让某个文件不生效时
[root@ly ~]# gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
[root@ly ~]# zcat CentOS-Vault.repo.gz   --> 查看不想解压的压缩包文件内容

3.zip打包与压缩

# 默认情况下没有zip和unzip工具,需要进行安装
[root@ly ~]# yum install zip unzip -y

#1.压缩文件为zip包
[root@ly ~]# zip  filename.zip  filename 

#2.压缩目录为zip包  
[root@ly ~]# zip -r  dir.zip dir/

#3.查看zip压缩包是否是完整的         
[root@ly ~]# zip -T  filename.zip
test of filename.zip OK

#4.不解压压缩查看压缩包中的内容
[root@ly ~]# unzip -l  filename.zip
[root@ly ~]# unzip -t  filename.zip

#5.解压zip文件包, 默认解压至当前目录          
[root@ly ~]# unzip  filename.zip

#6.解压zip内容至/opt目录
[root@ly ~]# unzip filename.zip  -d /opt/

3.tar打包与压缩

#语法:tar [-zjxcvfpP] filename 
c   #创建新的归档文件
x   #对归档文件解包
t   #列出归档文件里的文件列表
v   #输出命令的归档或解包的过程
f   #指定包文件名,多参数f写最后

z   #使用gzip压缩归档后的文件(.tar.gz)
j   #使用bzip2压缩归档后的文件(.tar.bz2)
J   #使用xz压缩归档后的文件(tar.xz)
C   #指定解压目录位置
X   #排除多个文件(写入需要排除的文件名称)
h   #打包软链接
--hard-dereference  #打包硬链接
--exclude   #在打包的时候写入需要排除文件或目录


#常用打包与压缩组合
czf     #打包tar.gz格式
cjf     #打包tar.bz格式
cJf     #打包tar.xz格式

zxf     #解压tar.gz格式
jxf     #解压tar.bz格式
xf      #自动选择解压模式
tf      #查看压缩包内容

1.将文件或目录进行打包压缩

#1.以gzip归档方式打包并压缩
tar czf  test.tar.gz  test/ test2/

#2.以bz2方式压缩 
tar cjf  test.tar.bz2 dir.txt dir/

#3.打包链接文件,打包链接文件的真实文件
[root@ly ~]# cd /
[root@ly /]# tar czfh local.tar.gz  etc/rc.local

#4.打包/tmp下所有文件
[root@ly ~]# cd /
[root@ly /]# find tmp/ -type f | xargs tar czf tmp.tar.gz

#5.打包/tmp下所有文件
[root@ly /]# tar czf tmp.tar.gz $(find /tmp/ -type f)

2.排除文件,并打包压缩

#1.排除单个文件
[root@ly /]#  tar czf etc.tar.gz --exclude=etc/services etc/

#2.排除多个文件
[root@ly /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/

#3.将需要排除的文件写入文件中
[root@ly /]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
#指定需要排除的文件列表, 最后进行打包压缩
[root@ly /]# tar czfX etc.tar.gz paichu.list etc/

3.查看压缩文件、解压缩文件

#查看压缩包内容和解压
[root@ly /]# tar tf  test.tar.gz

#1.解压至当前目录
[root@ly /]# tar xf  test.tar.gz      

#2.将解压内容存储至指定的/tmp目录
[root@ly ~]# tar xf /etc/local.tar.gz  -C /tmp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux文件打包与压缩 的相关文章

  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 找出 Linux 上的默认语言

    有没有办法从C语言中找出Linux系统的默认语言 有 POSIX API 可以实现这个功能吗 例如 我想要一个人类可读格式的字符串 即德语系统上的 German 或 Deutsch 法语系统上的 French 或 Francais 等 有类
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误

随机推荐

  • 关于VR的历史及发展

    寒假我看了关于一些虚拟现实的东西 xff0c 并在网上查获了一些资料 xff0c 作出以下归纳总结 xff1a 虚拟现实 xff0c 无法绕开它的历史 xff0c 最早可以追溯到公元前427年的古希腊时代 xff0c 当时的哲学家柏拉图在提
  • linux安装jdk环境(多种方式)

    linux系统通用安装 通过tar gz压缩包安装 此方法适用于绝大部分的linux系统 下载tar gz的压缩包 xff0c 这里使用官网下载 进入 xff1a http www oracle com technetwork java j
  • 线程的生产者和消费者模式

    多个线程同时运行时 xff0c 会产生线程并发可使用同步操作确保数据的安全性 xff0c 如果需要各线程之间交互 xff0c 可是使用线程等待和唤醒模式 xff0c 在这里常用的等待唤醒中经典的模式为 生产者和消费者模式 生产者和消费者由两
  • 获取操作日志记录(springboot+AOP)

    下面是我在公司写操作日志记录的时候的代码使用的aop自定义注解的方式 xff0c 这里记录一下代码希望可以给大家带来一些帮助 xff0c 顺便自己也巩固一下 方便随时取用 Aop注解实现日志的话其实不难 xff0c 我认为只要理解下面三个点
  • ThinkPHP5 SQL注入(select方法)

    ThinkPHP5 SQL注入 xff08 select方法 xff09 漏洞概要初始配置漏洞利用漏洞分析漏洞修复攻击总结 漏洞概要 本次漏洞存在于 Mysql 类的 parseWhereItem 方法中 xff0c 由于程序没有对数据进行
  • Windows下通过PowerShell终端直接制作tar.gz压缩包

    因为工作需要 xff0c 笔者经常要在windows系统里上传多个文件到linux环境上 centos linux下默认支持tar gz压缩格式 xff0c 因此一般都是通过制作tar gz压缩包来传的 原来在Windows下制作tar g
  • 一日一技:Ocelot网关使用IdentityServer4认证

    概述 Ocelot是一个用 NET Core实现的开源API网关技术 IdentityServer4是一个基于OpenID Connect和OAuth2 0的针对ASP NET Core的框架 xff0c 以中间件的形式存在 OAuth是一
  • Android Studio模拟器启动后不停闪烁(未解决)

    问题描述 xff1a Android Studio模拟器启动后不停闪烁 解决方法 xff1a 右侧点击Device Manager打开设备管理 xff0c 点击修改标志 将Graphics 图样 换成Software 软件 xff0c 点击
  • 复杂网络建模的实现(哈工大深圳复杂网络建模课程Project)

    任务 xff1a 1 xff0c 三张不同的网络 xff1a 已知某人的名称 已知某人的家乡 已知某人的方言 分析这三者各自的网络性能 xff08 节点度数分布 平均最短路径长度 集聚系数 xff09 以及动态行为 xff08 在刻意攻击
  • 免登陆Oracle官网下载JDK

    Oracle官网下载JDK 方法一 免登录下载 进入官网 xff0c 选择需要下载的JDK版本 xff0c 这里以JDK8为例 点击下载 xff0c 勾选同意 在正常情况下 xff0c 点击 Download jdk 8u333 windo
  • linux rancher 清理docker容器磁盘空间

    目录说明 var lib docker containers xff1a 是 Docker 在 Linux 系统上默认存储容器信息的目录 在该目录下 xff0c 每个运行的 Docker 容器都有一个单独的目录 xff0c 以容器 ID 命
  • 如何在官网下载COCO数据集

    官网地址 xff1a https cocodataset org download 1 选择下载的数据 xff0c 右键 xff0c 获取下载地址 2 将 http 改为 https 示例获得的下载地址为 xff1a http images
  • 两个互相引用对象的垃圾回收

    部分转自 xff1a 深入理解java虚拟机 一书 判断对象是否存活 1 引用计数算法 给对象添加一个引用计数器 xff0c 每当有一个地方引用它时 xff0c 计数器值就加1 当引用失效时 xff0c 计数器值就减1 任何时刻计数器为0的
  • ssm整合时,通过jdbc.properties文件无法连接mysql问题

    最近在重温ssm框架 在搭建基础的项目进行单元测试时 xff0c 发现无法连接mysql数据库 通过各种查资料终于发现了原因 原始jdbc properties文件 由于username这个属性会被系统的username变量覆盖 xff0c
  • Mysql数据库之左连接left join 右连接right join 内连接inner join

    最近 xff0c 公司的用户达到了700 43 万 xff0c 意味着数据库已经达到700 43 万 xff0c 聊聊傻傻分不清的连接查询吧 xff01 前提 数据库中一共有三个表 class book phone 而且每个数据库表中都有1
  • VMware虚拟机软件,配置Linux Ubuntu操作系统环境,及安装问题总结大全

    文章目录 1 xff1a 前言2 xff1a 基本认识3 下载环境4 xff1a VM虚拟机的安装5 xff1a ubuntu的下载6 xff1a 把ubuntu安装在VM虚拟机上7 VMware Tools工具8 Source insig
  • linux常用命令(Beginner note)

    命令 ls 列出所有文件及文件夹 ls 路径 xff1a 列出所给路径下的所有文件及文件夹 选项 xff1a xff08 可组合使用 xff0c 也可简写组合形式 xff0c 例 xff1a alh xff0c 无先后顺序 xff09 a
  • 利用JS-SDK微信分享接口调用(后端.NET)

    一直都想研究一下JS SDK微信分享的接口调用 xff0c 由于最近工作需要 xff0c 研究了一下 xff0c 目前只是实现了部分接口的调用 xff1b 其他接口调用也是类似的 xff1b 在开发之前 xff0c 需要提前准备一个微信公众
  • Linux文件查找find

    1 find查找概述 为什么要有文件查找 xff0c 因为很多时候我们可能会忘了某个文件所在的位置 xff0c 此时就需要通过find来查找 find命令可以根据不同的条件来进行查找文件 xff0c 例如 xff1a 文件名称 文件大小 文
  • Linux文件打包与压缩

    1 文件打包与压缩 1 什么是文件压缩 将多个文件或目录合并成为一个特殊的文件 比如 搬家 脑补画面 img 2 为什么要对文件进行压缩 xff1f 当我们在传输大量的文件时 xff0c 通常都会选择将该文件进行压缩 xff0c 然后在进行