热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.xz是什么文件怎么解压_如何在Linux或者macOS上压缩文件的5种方法

要节省空间那么直接xz,压缩率刚刚的centos7rootparallels:varlog#du-sha.txt485Ma.txtcentos7rootparalle

要节省空间那么直接xz,压缩率刚刚的

centos7 root@parallels:/var/log# du -sh a.txt485M a.txtcentos7 root@parallels:/var/log# time xz a.txtreal 0m47.252suser 0m47.066ssys 0m0.178scentos7 root@parallels:/var/log# du -sh a.txt.xz724K a.txt.xzcentos7 root@parallels:/var/log# rpm -qa xzxz-5.2.2-1.el7.x86_64

794aaca2cb6076821f3990ab76d8c52c.png

在Linux系统上有很多工具可以用来压缩文件,但它们的行为方式或产生的压缩程度并不相同。在这篇文章中,我们将对其中的五个工具进行比较。

Linux上有不少压缩文件的命令。其中最新最有效的是xz,但它们都有优点,既能节省磁盘空间,又能保存文件供以后使用。在这篇文章中,我们将对这些压缩命令进行比较,并指出它们的显著区别。

tar

tar命令不是专门的压缩命令。它一般是用来把一些文件拉成一个文件,方便传送到另一个系统,或者把文件作为一个相关的组进行备份。它还提供了压缩这个功能,这是很有意义的,增加z压缩选项就可以实现这个功能。当在tar命令中加入z选项的压缩功能时,tar会使用gzip来进行压缩。

$ tar cfz bigfile.tgz bigfile ^ ^ | | +- new file +- file to be compressed$ ls -l bigfile*-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz

请注意文件大小的显著减少。如果你喜欢,你可以使用tar.gz扩展名,这可能会使文件的特征更明显一些,但大多数Linux用户可能会认识到tgz的意思是一样的--tar和gz的组合,以表明该文件是一个压缩的tar文件。压缩完成后,你将同时拥有原始文件和压缩文件。要将多个文件收集在一起,并在一个命令中压缩产生的 "tar",使用相同的基本语法,但指定要包含的文件为一组,而不是单个文件。下面是一个例子。

$ tar cfz bin.tgz bin/* ^ ^ | +-- files to include + new file

zip

zip 命令创建了一个压缩文件,同时保留了原始文件的完整性。语法很简单,除了和tar一样,你必须记住你的原始文件应该是命令行的最后一个参数。

$ zip ./bigfile.zip bigfileupdating: bigfile (deflated 79%)$ ls -l bigfile bigfile.zip-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile-rw-rw-r-- 1 shs shs 21606889 Apr 16 11:19 bigfile.zip

gzip

gzip命令使用起来非常简单。你只需输入 "gzip",后面跟着你要压缩的文件名。与上述命令不同的是,gzip将对文件进行 "原地 "加密,换句话说,原始文件将被加密后的文件所取代。换句话说,原始文件将被加密后的文件所取代。

$ gzip bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs 21606751 Apr 15 17:57 bigfile.gz

bzip2

与gzip命令一样,bzip2会对你选择的文件进行 "原地 "压缩,只留下原始文件。

$ bzip bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs 18115234 Apr 15 17:57 bigfile.bz2

xz

作为压缩命令团队中相对较新的一员,xz在压缩文件的能力方面是一个领跑者。和前面两个命令一样,你只需要向命令提供文件名。同样,原始文件也会被压缩。

$ xz bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz

对于大文件,你可能会注意到,xz比其他压缩命令需要更长的运行时间,但压缩结果非常令人印象深刻。需要考虑的比较大多数人都听过这样一句话:"大小不是万能的"。所以,让我们来比较一下文件大小以及其他一些问题,当你制定计划如何压缩文件时,需要考虑的问题。,下面显示的统计数据都与压缩上面显示的示例命令中使用的单个文件--bigfile有关。这个文件是一个大而随机的文本文件。压缩率将在一定程度上取决于文件的内容。

缩小大小

经过比较,上面显示的各种压缩命令得到了以下结果。百分比代表压缩后的文件与原始文件的比较。

-rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile-------------------------------------------------------rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2 ~17%-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz ~21%-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz ~21%-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz ~13%-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip ~21%

xz命令胜出,最后只有原文件的13%大小,但这些压缩命令都使原文件大小减少了不少。

无论原始文件是否被替换bzip2、gzip和xz命令都是用压缩版本替换原始文件。而tar和zip命令则不会。

运行时间

xz命令似乎比其他命令需要更多的时间来加密文件。对于bigfile来说,大概的时间是。

command run-timetar 4.9 secondszip 5.2 secondsbzip2 22.8 secondsgzip 4.8 secondsxz 50.4 seconds

解压时间可能比压缩时间小得多。

文件权限

无论您在原始文件上设置了什么权限,压缩文件的权限将基于您的umask设置,但bzip2除外,它保留了原始文件的权限。

与Windows的兼容性

zip命令可以创建一个文件,这个文件可以在Windows系统、Linux和其他Unix系统上使用(即解压),而不需要安装其他工具,这些工具可能可用,也可能不可用。

解压文件

解压文件的命令与压缩文件的命令类似。在运行了上面所示的压缩命令后,这些命令将适用于解压bigfile。

tar: tar xf bigfile.tgz

zip:unzip bigfile.zip

gzip: gunzip bigfile.gz

bzip2: bunzip2 bigfile.gz2

xz: xz -d bigfile.xz 或 unxz bigfile.xz。

运行你自己的压缩比较

如果你想自己运行一些测试,抓取一个大的但可替换的文件,并使用上面显示的每个命令压缩它--最好使用一个新的子目录。如果你想在测试中包含xz,你可能必须先安装xz.这个脚本可以使比较更容易,但可能需要几分钟来完成。

#!/bin/bash# ask user for filenameecho -n "filename> "read filename# you need this because some commands will replace the original filecp $filename $filename-2# clean up first (in case previous results are still available)rm $filename.*tar cvfz ./$filename.tgz $filename > /dev/nullzip $filename.zip $filename > /dev/nullbzip2 $filename# recover original filecp $filename-2 $filenamegzip $filename# recover original filecp $filename-2 $filenamexz $filename# show resultsls -l $filename.*# replace the original filemv $filename-2 $filename

参考:

https://www.networkworld.com/article/3538471/how-to-compress-files-on-linux-5-ways.html



推荐阅读
  • 本文探讨了在不解压的情况下,如何高效地从包含文本文件的.gz压缩文件中查找特定字符串的方法。通过利用特定的工具和技术,可以在保持文件压缩状态的同时,快速定位和检索所需信息,提高处理大规模数据集时的效率和性能。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 在64位Linux系统上编译GCC时,可能会遇到一个错误,即在构建共享库过程中,`.libs/alloc.o` 文件中的重定位 `R_X86_64_32` 无法应用于 `.rodata.str1.8` 段。这一问题通常与目标文件的地址空间限制有关,需要通过调整编译选项或修改源代码来解决。具体来说,可以尝试使用 `-fPIC` 选项以生成位置无关代码,或者检查相关对象文件的链接方式。 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
author-avatar
IQBB_LongGang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有