Linux打包(归档)和压缩

这篇具有很好参考价值的文章主要介绍了Linux打包(归档)和压缩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 打包(归档)和压缩(包含二者的区别)

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。

通常,归档会和系统(数据)备份联系在一起,不过,有关数据备份的内容,之后进行说明。

和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其占用的磁盘空间比集合中所有文集大小的总和要小。
压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了“Linux系统”,那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。
由于计算机处理的信息是以二进制的形式表示的,因此,压缩文文件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或多个文件用压缩软件进行压缩,形成一个压缩文件包,既可以节省存储空间,又可以方便在网络传送。
如果能够理解文件压缩的基本原理,那么很容易就能想到,对文件进行压缩,很有可能损坏文件的内容,因此。压缩又分为有损压缩无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即使丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式mpeg、音乐文件格式mp3以及图像文件格式jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称为解压缩
Linux下,常用归档命令有2个,分别是tardd(相对而言,tar的使用更为广泛);常用的压缩命令有很多,比如gzipzipbzip2等。

注意,tar命令也可以作为压缩命令,也很常用。

2 Linux tar命令

在Linux系统中,最常用的归档(打包)命令就是tar,该命令可以使许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包。

使用tar命令归档的包通常称为tar包(tar包文件都是以“.tar”结尾的)。

2.1 tar命令执行打包操作

tar命令的基本格式为:

[chen@localhost~]$ tar [选项] 源文件或目录
选项 作用
-c 将多个文件或目录进行打包
-A 追加tar文件到归档文件
-f 包名 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要使用正确的扩展名
-v 显示打包文件过程

【例1】打包多个文件
/home/chen/my/ 目录下的文件target1,target2,target3打包 并命名为bao.tar且放到/home/chen/my/ 目录下

[chen@localhost my] tar -cvf bao.tar target1 target2 target3

Linux打包(归档)和压缩
【例2】打包目录
/home/chen/my/目录打包并命名bao.tar且放在/home/chen/My/目录下

[~]$ tar -cvf /home/chen/My/bao.tar /home/chen/my/

Linux打包(归档)和压缩
【例3】打包并压缩目录
在例2的基础上将/home/chen/My/bao.tar文件压缩。

压缩命令不能直接压缩目录,必须先使用tar命令将目录打包,才能使用gzip命令bzip2命令对打包文件进行压缩

[~]$ tar -cvf /home/chen/My/bao.tar /home/chen/my/
[~]$ gzip /home/chen/My/bap.tar

Linux打包(归档)和压缩

2.2 tar命令执行解打包操作

tar命令的基本格式如下:

[chen@localhost~]$ tar [选项] tar包
选项 作用
-x 对tar包做解打包操作
-t 只查看tar包中有哪些文件或目录
-f 指定要解压的tar包的包名(这是最后一个参数)
-C 目录 指定解打包位置
-v 显示解打包的具体过程

【例1】解打包/home/chen/my/bao.tar文件到当前目录/home/chen/my/下。

[~]$ tar -xvf /home/chen/my/bao.tar

Linux打包(归档)和压缩
【例2】解打包/home/chen/my/bao.tar文件到其它目录/home/chen/My/下。

[~]$ tar -xvf /home/chen/my/bao.tar -C /home/chen/My/

Linux打包(归档)和压缩
【例3】 查看/home/chen/my/bao.tar文件的内容

[~]$ tar -tvf /home/chen/my/bao.tar

Linux打包(归档)和压缩

2.3 tar命令执行 打包压缩(解包解压)操作

你可能会觉得Linux实在太不智能了,一个打包压缩,居然还要先打包成.tyar格式,再压缩成.tar.gz.tar.bz2格式。其实,tar命令是可以同时打包压缩的,前面的讲解之所以打包和压缩分开,是为了让大家了解在Linux中打包和压缩的不同。
tar命令的基本格式如下:

[chen@localhost~]$ tar [选项] 压缩包 源文件或目录
选项 作用
-z 压缩和解压缩.tar.gz格式
-j 压缩和解压缩.tar.bz2格式

【例1】压缩与解压缩 .tar.gz格式
/home/chen/my/target1文件压缩为bao.tar.gz并放入/home/chen/目录下

[~]$ tar -zcvf /home/chen/bao.tar.gz /home/chen/my/target1

Linux打包(归档)和压缩

2.4 两种常见问题

【问题1】
tar命令打包压缩时报错:tar:Removing leading ‘/’ from member names
Linux打包(归档)和压缩
问题原因:因为使用的是绝对路径/home/chen/my/*.txt,而不是相对路径。而tar命令默认是采用相对路径进行压缩打包的

一般不推荐使用绝对路径,原因之一是可能会导致tar炸弹攻击

解决方案:打包压缩时使用相对路径./my/*.txt
Linux打包(归档)和压缩
【问题2】
解压时发现连同路径都一起打包进去
解决方案:最好在打包时,进入要打包的文件目录,减少目录层级。(要打印/home/chen/my/*.txt文件,最好是先进入到/home/chen/my目录)
Linux打包(归档)和压缩

3 Linux zip/unzip 命令

zip命令的基本格式如下:

[chen@localhost ~]$ zip [选项] 压缩包名 源文件名

unzip命令的基本格式如下:

[chen@loaclhost ~]$ unzip [选项] 压缩包名
选项 作用
-r 递归压缩目录,及目录下内容全部压缩
-m 将文件压缩后删除原始文件
-v 显示详细的压缩过程信息
-d 目录名 将压缩文件解压到指定目录下

【例1】压缩/home/chen/my/*.txt文件到/home/chen/My1/目录下,并取名为bao.zip
解压缩/home/chen/My1/bao.zip文件到/home/chen/My2/目录下

[chen@localhost ~]$ cd my # 进入到压缩文件的上层目录中
[chen@localhost my]$ zip /home/chen/My1/bao.zip *.txt
[chen@localhost my]$ cd ../My1
[chen@localhost My1]$ unzip -d /home/chen/My2 bao.zip

【例2】压缩/home/chen/my/目录到/home/chen/My1/目录下,并取名为bao1.zip
解压缩/home/chen/My1/bao1.zip文件到/home/chen/My2/目录下文章来源地址https://www.toymoban.com/news/detail-502417.html

[chen@localhost ~]$ zip -r /home/chen/My1/bao1.zip my
[chen@localhost ~] cd My1
[chen@localhost My1]$ unzip -d /home/chen/My2 bao1.zip

到了这里,关于Linux打包(归档)和压缩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux之文件打包和解压缩

    任务描述 有时,我们会在 Linux 系统中将多个文件打包成一个单独的文件,通过本关的学习,我们将学会如何在 Linux 系统中将多个文件/目录打包生成一个文件。 本关任务:使用 tar 命令完成文件和目录的打包操作。 相关知识 tar ( tape archive 的简写)工具可完成许多功能,其

    2024年02月09日
    浏览(40)
  • linuxOps基础_linux文件打包压缩与解压缩

    默认情况下,Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。 打包 打包只是把多个文件或文件夹打包放在一个文件中,但是并没有进行压缩,所以其大小还是原来所有文

    2024年02月07日
    浏览(37)
  • Linux中的打包和文件压缩

    文件打包和文件压缩是linux中常用的数据传递方式,可以保证数据的整体性;本文主要介绍工作中常用的几种打包和压缩方式 有时我们会将linux中的数据拷贝到windows上进行查看,常用的文件压缩格式有zip和rar zip文件压缩格式 压缩命令 说明 zip a.zip ./* 将当前目录下的文件压缩

    2024年02月07日
    浏览(35)
  • SpringBoot实现文件记录日志,日志文件自动归档和压缩

    😊 @ 作者: Eric 💖 @ 主页: https://blog.csdn.net/weixin_47316183?type=blog 🎉 @ 主题: SpringBoot实现文件记录日志,日志文件自动归档和压缩 ⏱️ @ 创作时间: 2023年08月06日 Logback 是一个Java日志框架,它是 log4j 的后继者,被广泛用于应用程序中记录日志。 Logger(日志记录器): L

    2024年02月14日
    浏览(33)
  • Linux基础命令-tar打包压缩文件

    Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客 Linux三剑客-grep命令_Linux学习中的博客-CSDN博客 Linux文件管理命令(3)-mv改动文件_Linux学习中的博客-CSDN博客 文章目录 前言 一、tar命令介绍 二、命令语法及常用参数 三、 参考案例 总结 在工作上,有同事需要用到程序或一

    2024年02月13日
    浏览(43)
  • linux tar打包压缩解压命令学习

    Linux系统中tar是最常用的打包工具,通过打包工具可以压缩/解压 比如常见的压缩包格式 如下: tar 未压缩文件 只是做了一个打包而已 tar.gz 使用gzip算法格式压缩的压缩包 tar.bz2 bz2格式压缩包 tar.xz xz格式压缩 参数介绍 tar 的参数很多 列出几个比较常用的记录一下。 格式 tar

    2024年02月04日
    浏览(49)
  • Linux下的打包和压缩/解压解包

    打包呢就是把所有东西装在一起,然后压缩就是将这一包东西给它合理摆放,腾出更多的空间,以便放更多的东西。 压缩可以将如果东西是一定的情况下,占用更小的体积,如果空间固定那么压缩就会使这个空间能装更多的东西。这种就像要开学去学校的你,带很多东西,一

    2024年02月13日
    浏览(39)
  • Linux_6_文件查找与打包压缩

    在文件系统上查找符合条件的文件 文件查找: locate, find 非实时查找(数据库查找): locate 实时查找: find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库 索引构建过程需要遍历整个根

    2024年02月10日
    浏览(34)
  • 【Linux实践室】Linux文件打包和解压缩实战指南:tar打包命令操作详解(文末送书)

    🌈个人主页: 聆风吟_ 🔥系列专栏: Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 有时,我们会在Linux系统中将多个文件打包成一个单独的文件,通过本节的学习,我们将学会如何在Linux系统中将多个文件/目录打包生成一个文件。 本节任务:使用

    2024年04月29日
    浏览(45)
  • Linux 打包压缩解压指令 gzip bzip2 tar

    总结自 鸟哥Linux私房菜 Linux压缩文件的扩展名大多是:“.tar, .tar.gz, .tgz, .gz, .Z, .bz2, *.xz”, 不同压缩文件使用了不同的算法,不能通用压缩或解压 常见扩展名: Linux上常见的压缩指令就是 gzip, bzip2 以及最新的 xz ,至于 compress 已经退流行了。为了支持 windows 常见的 zip,其实

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包