在linux上压缩文件,Linux上压缩文件的 5 种方法
在 Linux 上有不少用于压缩文件的命令。最新最有效的一个方法是
xz,但是所有的方法都有节省磁盘空间和维护备份文件供以后使用的优点。在这篇文章中,我们将比较这些压缩命令并指出显著的不同。
tar
tar
命令不是专门的压缩命令。它通常用于将多个文件拉入一个单个的文件中,以便容易地传输到另一个系统,或者将文件作为一个相关的组进行备份。它也提供压缩的功能,这就很有意义了,附加一个
z 压缩选项能够实现压缩文件。
当使用 z 选项为 tar 命令附加压缩过程时,tar 使用 gzip 来进行压缩。
就像压缩一组文件一样,你可以使用 tar 来压缩单个文件,尽管这种操作与直接使用 gzip 相比没有特别的优势。要使用 tar 这样做,只需要使用
tar cfz newtarfile filename 命令来标识要压缩的文件,就像标识一组文件一样,像这样:
1.$ tar cfz bigfile.tgz bigfile
2. ^ ^
3. | |
4. ± 新的文件 ± 将被压缩的文件
5.
6.$ ls -l bigfile*
7.-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile
8.-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz
注意,文件的大小显著减少了。
如果你愿意,你可以使用 tar.gz 扩展名,这可能会使文件的特征更加明显,但是大多数的 Linux 用户将很可能会意识到与 tgz 的意思是一样的
– tar 和 gz 的组合来显示文件是一个压缩的 tar 文件。在压缩完成后,你将同时得到原始文件和压缩文件。
要将很多文件收集在一起并在一个命令中压缩出 “tar ball”,使用相同的语法,但要指定要包含的文件为一组,而不是单个文件。这里有一个示例:
1.$ tar cfz bin.tgz bin/*
2. ^ ^
3. | ±- 将被包含的文件
4. + 新的文件
zip
zip 命令创建一个压缩文件,与此同时保留原始文件的完整性。语法像使用 tar
一样简单,只是你必需记住,你的原始文件名称应该是命令行上的最后一个参数。
1.$ zip ./bigfile.zip bigfile
2.updating: bigfile (deflated 79%)
3.$ ls -l bigfile bigfile.zip
4.-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile
5.-rw-rw-r-- 1 shs shs 21606889 Apr 16 11:19 bigfile.zip
gzip
gzip 命令非常容易使用。你只需要键入 gzip,紧随其后的是你想要压缩的文件名称。不像上述描述的命令,gzip
将“就地”加密文件。换句话说,原始文件将被加密文件替换。
1.$ gzip bigfile
2.$ ls -l bigfile*
3.-rw-rw-r-- 1 shs shs 21606751 Apr 15 17:57 bigfile.gz
bzip2
像使用 gzip 命令一样,bzip2 将在你选择的文件“就地”压缩,不留下原始文件。
1.$ bzip bigfile
2.$ ls -l bigfile*
3.-rw-rw-r-- 1 shs shs 18115234 Apr 15 17:57 bigfile.bz2
xz
xz
是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。
1.$ xz bigfile
2.$ ls -l bigfile*
3.-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz
对于大文件来说,你可能会注意到 xz 将比其它的压缩命令花费更多的运行时间,但是压缩的结果却是非常令人赞叹的。
对比
大多数人都听说过“大小不是一切”。所以,让我们比较一下文件大小以及一些当你计划如何压缩文件时的问题。
下面显示的统计数据都与压缩单个文件相关,在上面显示的示例中使用
bigfile。这个文件是一个大的且相当随机的文本文件。压缩率在一定程度上取决于文件的内容。
大小减缩率
当比较时,上面显示的各种压缩命产生下面的结果。百分比表示压缩文件与原始文件的比较效果。
1.-rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile
2.------------------------------------------------------
3.-rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2 ~17%
4.-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz ~21%
5.-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz ~21%
6.-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz ~13%
7.-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip ~21%
xz 命令获胜,最终只有压缩文件 13% 的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。
是否替换原始文件
bzip2、gzip 和 xz 命令都用压缩文件替换原始文件。tar 和 zip 命令不替换。
运行时间
xz 命令似乎比其它命令需要花费更多的时间来加密文件。对于 bigfile 来说,大概的时间是:
1.命令 运行时间
2.tar 4.9 秒
3.zip 5.2 秒
4.bzip2 22.8 秒
5.gzip 4.8 秒
6.xz 50.4 秒
解压缩文件很可能比压缩时间要短得多。
文件权限
不管你对压缩文件设置什么权限,压缩文件的权限将基于你的 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,如果你想在测试中包含它的话。这个脚本可能更容易地进行压缩,但是可能需要花费几分钟完成。
1.#!/bin/bash
2.
3.# 询问用户文件名称
4.echo -n "filename> "
5.read filename
6.
7.# 你需要这个,因为一些命令将替换原始文件
8.cp $filename $filename-2
9.
10.# 先清理(以免先前的结果仍然可用)
11.rm filename.∗ 12. 13.tarcvfz./filename.* 12. 13.tar cvfz
./filename.∗ 12. 13.tarcvfz./filename.tgz $filename > /dev/null
14.zip $filename.zip $filename > /dev/null
15.bzip2 $filename
16.# 恢复原始文件
17.cp $filename-2 $filename
18.gzip $filename
19.# 恢复原始文件
20.cp $filename-2 $filename
21.xz $filename
22.
23.# 显示结果
24.ls -l $filename.*
25.
26.# 替换原始文件
27.mv $filename-2 $filename
最后分享一些相关资料交流裙:1126743406
在linux上压缩文件,Linux上压缩文件的 5 种方法相关推荐
- linux查看群组所属用户,linux 列出用户所属的所有群组的5种方法
列出用户所属的所有群组的5种方法 在研究5种方法之前,让我们首先了解一些基本知识: 将用户添加到现有组是Linux管理员的典型任务之一. 群组是用户的集合.群组的主要目的是为群组中的成员定义一组特权. ...
- Linux下判断磁盘是SSD还是HDD的几种方法
文章目录 1.使用Linux相关命令 2.linux查看磁盘所在槽位 1.使用Linux相关命令 方法1: 如果是直通盘,即JBOD模式,方法则正确 如果返回1则表示磁盘可旋转,那么就是HDD了:反之 ...
- 多个PDF文件如何合并成一个?两种方法轻松get
在日常学习生活中,如果你需要将多个文档整合为一个完整的文件,比如说多篇文章.多张图片.多个表格等等,这时候就需要将这些文档合并成一个PDF文件.如何将多个PDF文件如何合并成一个?两种方法轻松帮你搞定 ...
- 剪切的文件丢失如何找回?这四种方法可试
剪切文件相当于在设备中进行文件删除,而一旦剪切过程中出现错误就容易造成源文件丢失.那么剪切文件丢失如何恢复?下面将分享剪切丢失文件恢复的方法,均以win10系统为例进行操作. ▌第一种方法:撤销移动 ...
- amr文件怎么转换成mp3,5种方法供你选择
amr文件怎么转换成mp3?如果你常常使用手机录音或下载手机铃声,那么AMR格式对你来说一定不会陌生.因为amr文件的资源占用率低.传输方便,通常用作各大手机厂商广泛使用的一种保存录音文件的格式,非常 ...
- 用python修改文件内容修改txt内容的3种方法
用python修改文件内容修改txt内容的3种方法 方法一.修改原文件方式 def updateFile(file,old_str,new_str):"""替换文件中的字 ...
- java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内
Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...
- attrib批量显示文件夹_电脑中病毒,文件夹全部变成快捷方式?3种方法轻松解决!...
原标题:电脑中病毒,文件夹全部变成快捷方式?3种方法轻松解决! 最近有位朋友去打印店的时候,u盘一不小心就带回了1KB快捷方式病毒,导致电脑u盘里的文件以及文件夹全部变成了快捷方式,不知道如何解决. ...
- PDF压缩文件怎么压缩?两分钟让你学会三种方法
我们在传输PDF文件的时候,偶尔会因为文件过大,导致传输速度过长,甚至有时会提示,超出可传输的文件大小.这种时候就需要我们减小PDF文件的体积了,那有什么办法可以既保证文件内容质量,又可以减小文件体积 ...
- Linux下让进程在后台可靠运行的几种方法
想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一 ...
最新文章
- 又在上海!这场人工智能大会,由图灵奖得主等带来机器学习、知识工程等干货分享!...
- Python中的类(2)
- mysql1577_使用Navicat for MySQL的1577错误解决办法
- commons-logging log4j的联系区别
- BOM之navigator对象和用户代理检测
- arima模型怎么拟合_7个统计测试,用于验证和帮助拟合ARIMA模型
- php如何获取网址中的参数
- mysql 日志同步 数据不同步_Mysql互为主从问题--日志同步数据不同步
- 米筐量化不支持c语言_量化初级之量化选股
- 授权windows客户端用户连接Linux mysql命令
- Web应用启动时,后台自动启动一个线程
- 当R遇上Docker的第一步
- python 欧姆龙plc通信_二进制PLC通信校验和
- android升级mcu升级,车载mcu需要升级吗_车载mcu升级有什么用
- winapi检测鼠标是否在任务栏
- 不仅仅是自动化,DevOps 测试工具推荐
- MoveIt与RobotStudio
- 【蓝桥杯】2019年第十届蓝桥杯(个人赛) 大赛介绍、注意事项及赛后总结
- 37个项目!2020年5G+智慧灯杆项目落地情况大汇总
- 【T+】删除/取消畅捷通T+软件登录界面右上角的授权单位等联系信息