常见的压缩格式、压缩命令的应用|7z、rar、zip、tar、gz、bz2、lzma、xz

常见的压缩包后缀名

.zip

使用 ZIP 压缩算法的压缩包格式。这是跨平台通用的压缩格式。可以使用 zip 命令创建和解压缩 ZIP 压缩包。

.rar

使用 RAR 压缩算法的压缩包格式。这是 Windows 平台上常用的一种压缩格式。可以使用 WinRAR 或 7-Zip 等软件来创建和解压缩 RAR 压缩包。

.tar.gz 或 .tgz

先使用 tar 命令打包,然后再使用 gzip 算法压缩的格式。这是 Linux/Unix 上常用的压缩包格式。可以使用 tar 命令来创建和解压缩。

.tar.bz2

先使用 tar 命令打包,然后再使用 bzip2 算法压缩的格式。这也是 Linux/Unix 上常用的压缩包格式。可以使用 tar 命令来创建和解压缩。

.7z

使用 7-Zip 压缩算法的压缩包格式。这是一种非常高压缩率的压缩格式,但支持的软件相对较少。可以使用 7-Zip 软件来创建和解压缩 .7z 文件。

.gz

单独使用 gzip 算法压缩的文件。这种格式通常只用于压缩单个文件,而不是整个文件夹。可以使用 gzip 命令来创建和解压缩。

.bz2

单独使用 bzip2 算法压缩的文件。这种格式也通常只用于压缩单个文件,而不是整个文件夹。可以使用 bzip2 命令来创建和解压缩。

压缩工具及命令

zip 压缩:

    参数:
        -r: 递归压缩文件夹及其子文件
        -q: 静默模式,不输出任何信息
        -o: 设置压缩包的修改时间为最新的文件时间
        -9: 设置最高压缩级别
    示例:
        压缩单个文件: zip file.zip file.txt
        压缩整个文件夹: zip -r archive.zip folder/
    解压:
        列出压缩包内容: unzip -l archive.zip
        解压到指定目录: unzip -d /path/to/extract archive.zip

tar 压缩:

    参数:
        -c: 创建新的归档文件
        -x: 从归档文件中提取文件
        -f <file>: 指定归档文件名
        -z: 使用 gzip 压缩/解压
        -j: 使用 bzip2 压缩/解压
    示例:
        创建 tar.gz 压缩包: tar -czf archive.tar.gz folder/
        创建 tar.bz2 压缩包: tar -cjf archive.tar.bz2 folder/
    解压:
        解压 tar.gz 文件: tar -xzf archive.tar.gz
        解压 tar.bz2 文件: tar -xjf archive.tar.bz2

gzip/bzip2 压缩:

此命令只能压缩单个文件不能压缩文件夹
    参数:
        -d: 解压缩
        -k: 保留原始文件
        -v: 显示压缩过程
        -1 to -9: 设置压缩级别
        -c : 指定压缩后的文件包名
    示例:
        压缩文件: gzip -9 file.txt
        解压文件: gzip -d file.txt.gz
        压缩文件: bzip2 -9 file.txt 
        解压文件: bzip2 -d file.txt.gz
     
 -c  选项表示将压缩结果输出到标准输出(stdout)   
	    默认行为:
	        不加 -c 选项时,gzip 和 bzip2 命令会直接对原始文件进行压缩,并将压缩后的文件替换原始文件。
	        例如: gzip file.txt 会将 file.txt 压缩为 file.txt.gz,并删除原始的 file.txt。
	
	    使用 -c 选项:
	        加上 -c 选项后,gzip 和 bzip2 命令会将压缩结果输出到标准输出,而不是替换原始文件。
	        例如: gzip -c file.txt > file.txt.gz 会将 file.txt 压缩的结果输出到 file.txt.gz 文件,而不会修改原始的 file.txt 文件。

rar/7z 压缩:

    参数:
        a: 添加文件到压缩包
        x: 解压缩
        -r: 递归压缩子目录
        -m{0-5} (rar) / -mx={0-9} (7z): 设置压缩级别
        -m0=lzma2 指定使用 LZMA2 压缩算法 (7z最高压缩比算法)
        -o{Path}: 指定输出文件夹路径
    示例:
        压缩文件: rar a -m5 archive.rar file.txt
        解压文件: rar x archive.rar
        压缩文件: 7z a -mx=9 archive.7z file.txt
        解压文件: 7z x archive.7z

xz 压缩

    压缩:
        -z: 表示压缩操作
        -0 到 -9: 指定压缩级别,0 表示最低压缩,9 表示最高压缩
        -k: 保留原始文件
        -f: 强制覆盖输出文件
        -c: 将压缩结果输出到标准输出而不是文件

    解压:
        unxz: 用于解压 .xz 文件
        -k: 保留压缩文件
        -f: 强制覆盖输出文件
        -c: 将解压结果输出到标准输出
        
    示例 :
	 	压缩: xz -z my_file.txt
	    解压: unxz my_file.txt.xz

lzma 压缩

    压缩:
        -z: 表示压缩操作
        -0 到 -9: 指定压缩级别
        -k: 保留原始文件
        -f: 强制覆盖输出文件
        -c: 将压缩结果输出到标准输出

    解压:
        unlzma: 用于解压 .lzma 文件
        -k: 保留压缩文件
        -f: 强制覆盖输出文件
        -c: 将解压结果输出到标准输出
   	示例:
	    压缩: lzma -z my_file.txt
	    解压: unlzma my_file.txt.lzma

总结:

压缩时可以指定 -0 到 -9 的压缩级别,数字越大表示压缩率越高,但耗时也越长
-k 参数用于保留原始文件,不删除原文件
-f 参数用于强制覆盖输出文件
-c 参数用于将结果输出到标准输出,而不是写入文件

MacOS 安装rar、7z压缩工具

macOS 内置了以下命令行压缩/解压工具:
zip/unzip - 用于 .zip 格式
tar - 用于 .tar、.tar.gz、.tar.bz2 等格式
gzip/gunzip - 用于 .gz 格式
bzip2/bunzip2 - 用于 .bz2 格式

安装 rar

在 macOS 上,使用 Homebrew 包管理器来安装 rar 工具。

brew install unar

使用 unrar 命令来解压 rar 文件了。但是如果需要创建 rar 文件,还需要额外安装 rar 软件包:

brew install rar

安装完成后,就可以使用 rar 命令来创建 rar 压缩包了。

安装 7z

使用 Homebrew 安装 7z 工具:

brew install p7zip
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用7-Zip库中的lzma压缩大文件,您需要遵循以下步骤: 1. 下载7-Zip SDK并解压缩到您的计算机。 2. 使用以下代码包含必要的头文件: ```c #include "lzma/LzmaEnc.h" #include "lzma/LzmaDec.h" ``` 3. 创建一个LzmaEncHandle和LzmaEncProps结构体来设置压缩选项: ```c LzmaEncHandle enc = LzmaEnc_Create(&g_Alloc); LzmaEncProps props; LzmaEncProps_Init(&props); props.level = 5; // 压缩级别 props.dictSize = 1 << 26; // 字典大小 props.reduceSize = (1 << 30) - 1; // 压缩后文件大小 props.lp = 0; // 用于匹配模式的扩展字节数 props.pb = 2; // 用于匹配模式的字节数 props.fb = 128; // 用于匹配模式的字节数 props.numThreads = 2; // 使用的线程数 ``` 4. 使用LzmaEnc_SetProps函数将压缩选项应用LzmaEncHandle: ```c LzmaEnc_SetProps(enc, &props); ``` 5. 打开要压缩的大文件,并为输出文件创建一个文件句柄: ```c FILE* inFile = fopen("input_file", "rb"); FILE* outFile = fopen("output_file.lzma", "wb"); ``` 6. 编写循环,将文件分段读取并压缩: ```c int inSize = 1 << 16; // 每次读取的输入文件大小 int outSize = 1 << 16; // 每次写入的输出文件大小 unsigned char* inBuf = (unsigned char*)malloc(inSize); unsigned char* outBuf = (unsigned char*)malloc(outSize); while (true) { // 读取输入文件 size_t bytesRead = fread(inBuf, 1, inSize, inFile); if (bytesRead == 0) { break; } // 压缩数据 size_t outPos = 0; size_t outLen = outSize; LzmaEnc_Encode(enc, outBuf, &outLen, inBuf, bytesRead, &g_Alloc, &g_Alloc); // 写入输出文件 fwrite(outBuf, 1, outLen, outFile); } ``` 7. 关闭文件句柄和LzmaEncHandle,并释放内存: ```c fclose(inFile); fclose(outFile); LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc); free(inBuf); free(outBuf); ``` 这样,您就可以使用7-Zip库中的lzma压缩大文件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值