前言

最近使用gitbook写接口文档,gitbook需要nodejs执行环境。安装nodejs时,发现安装包使用的是xz后缀,它是使用LZMA无损数据压缩算法生成的文件,压缩率很高。GNU已经内置了xz命令,linux操作系统一般都自带了这个命令。

用途

使用lzma算法压缩文件,或者解压.xz,.lzma后缀的压缩文件

用法

xz [option]... [file]...

常用参数

动作模式类参数

-z, --compress
对文件进行压缩, 默认的模式

-d, --decompress, --uncompress
解压文件

-t, --test
测试压缩文件的完整性

动作修饰符类参数

-k, --keep
保留原始文件,默认会删除

-f, --force
是否强制执行,有些操作有副作用,默认不允许,可以加上这个参数强制执行

-c, --stdout, --to-stdout
内容输出到标准输出缓存区,默认会写入文件

-S .suf, --suffix=.suf
指定文件后缀名

--files[=file]
从文件中读待压缩或者解压缩的文件

基本文件格式和压缩选项类参数

-F format, --format=format
压缩格式
auto:这个是默认格式,压缩时使用xz,解压时自动检测压缩文件格式
xz:以xz格式压缩和只解压xz格式的压缩文件
lzma or alone:以lzma格式压缩,解压时只解压lzma格式的压缩文件
raw:压缩或者解压文件,不包含headers,高级用户才使用,一般不使用这个格式

-C check, --check=check
内容完整性检查,只针对xz格式生效
none:不检查
crc32:计算crc32
crc64:计算crc64,默认使用这个
sha256:sha256算法

-0 ... -9
压缩等级
数字越大,压缩率越高,但相应的占用系统资源和压缩时间会相应的更多
默认是-6
-0 ... -2: 压缩很快,低内存使用
-3 ... -5:更好的压缩比,中低内存使用,需要的时间比 -0 ... -2长
-6 ... -9:极高的压缩比,中高内存使用

-M limit, --memory=limit
设置内存使用限制,默认是系统物理内存的40%
固定大小:-M 80Mib
系统物理内存百分比:-M 70%

其它类的参数

-v, --verbose
输出详细的信息,指定2次会输出更详细的信息,可以用于调试

-h, --help
输出简易版本帮助信息

-H, --long-help
输出详细内容帮助信息

-V, --version
输出程序版本

实践

压缩文件

[root@vm ~]# xz --keep --verbose node-v8.9.4-linux-x64.tar
node-v8.9.4-linux-x64.tar (1/1)
100.0 % 11.8 MiB / 61.1 MiB = 0.193 2.6 MiB/s 0:23

解压文件

[root@vm ~]# xz --decompress --keep --verbose node-v8.9.4-linux-x64.tar.xz
node-v8.9.4-linux-x64.tar.xz (1/1)
100.0 % 11.8 MiB / 61.1 MiB = 0.193

后记

1.压缩和解压缩比较耗系统资源,操作时尽量选择系统不繁忙的时间段
2.支持和打包命令tar一起使用

参考资料

【1】man xz
【2】tar.xz格式文件的解压方法
http://www.cnblogs.com/wlei/archive/2012/08/28/2660274.html

N天学习一个linux命令之xz的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  3. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  4. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  5. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  6. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  7. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  8. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

  9. N天学习一个linux命令之ip

    用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...

随机推荐

  1. JavaSE综合项目演练

    光阴似箭日月如梭,大家学习已经有了一段时间了,转眼间,从刚开始如何配置JDK已经到了现在快学完网络编程了.学了这么多,眼看就要进入下一个阶段了,数据库编程了,那么在进入下个阶段前,我们来完成一个综合性 ...

  2. 基于ASP.Net Core开发一套通用后台框架记录-(项目的搭建)

    写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...

  3. python自动化测试学习笔记-2-列表

    上次我们学习了python的基本概念,了解了python的变量及数据类型,并实战了条件判断,for/while循环,字符串输出,格式化输出的一些基本用法,接下来我们继续学习其他的一些数据类型. pyt ...

  4. 如何获取<a>标签的Id

    案例: <a id='213' href='javascript:void(0);'onclick=DealFun(this.Id);>删除</a> 解决方案: functio ...

  5. react杂记

    React webpack+react (hello world) 项目结构: src: app.js main.js package.json webpack_dev_config.js 需要安装包 ...

  6. 图解TCP/IP笔记(1)——TCP/IP协议群

    转载请注明:https://www.cnblogs.com/igoslly/p/9167916.html TCP/IP制定  制定:IETF 记录:RFC - Request for comment ...

  7. (转)Hibernate框架基础——cascade属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52760010 我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的 ...

  8. IOS: Xcode报 Undecleared selector Warning错误的解决方法

    Undecleared selector  Warning 是编译器报的,特别是升级到IOS7 默认PROJ设定的时候,会出现这种问题,如果从代码上看语法完全没有问题,那么就可以在Xcode里面设置禁 ...

  9. PHP 数据库连接 (Mysql Mysqli PDO)

    1.PHP与Mysql扩展(本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除),PHP原生的方式去连接数据库,是面向过程的 <?php $mysql_conf = array( 'hos ...

  10. 常见的Xshell运行命令

    最近接触到了Xshell这个软件,使用这个软件我们来进行连接Linux系统,进去之后我们可能会两眼一抹黑,小编就带大家来学些常见的shell命令. 首先我们要跟大家从最简单的聊起,我们进入Xshell ...