Linux下zip压缩的解压

1、unzip

windows常见的压缩包有rar和zip格式,如果要将压缩包上传到Linux上再解压,就要使用unzip命令。以下是unzip常见命令:

unzip a.zip 		# 解压到当前目录
unzip a.zip -d /test		# 解压到test目录
unzip -v a.zip 		# 查看压缩包内容

没有unzip可以使用yum安装

yum -y install unzip

2、zip

如果需要将Linux下的文件传输到Windows上,可以使用zip命令

yum -y install zip		# 安装zip

压缩命令

zip -r a.zip /test		# 将test目录下的递归压缩到a.zip
zip -r b.zip *.conf		# 将该目录下的.conf文件压缩

常用参数:

参数作用
-q不显示指令执行过程
-r递归处理,将指定目录下的所有文件和子目录一并处理
-z替压缩文件加上注释
-v显示指令执行过程或显示版本信息
-d更新压缩包内文件
-n<字尾字符串> 不压缩具有特定字尾字符串的文件
  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以使用 zlib 库来进行压缩解压缩操作。zlib 是一个开源的压缩库,支持多种压缩算法,包括 deflate、gzip 和 zlib 等。在 Linux 系统中,您可以使用以下命令安装 zlib 库: ``` sudo apt-get install zlib1g-dev ``` 然后,您可以使用以下代码来进行压缩解压缩操作: ```c++ #include <iostream> #include <fstream> #include <cstring> #include <zlib.h> using namespace std; // 压缩函数 bool compressFile(const char* srcFile, const char* dstFile) { ifstream fin(srcFile, ios::binary); if (!fin) { cout << "Failed to open source file!" << endl; return false; } ofstream fout(dstFile, ios::binary); if (!fout) { cout << "Failed to create destination file!" << endl; return false; } // 初始化 zlib z_stream zs; memset(&zs, 0, sizeof(zs)); if (deflateInit(&zs, Z_DEFAULT_COMPRESSION) != Z_OK) { cout << "Failed to initialize zlib!" << endl; return false; } // 压缩数据 char buffer[1024]; while (!fin.eof()) { fin.read(buffer, sizeof(buffer)); zs.avail_in = fin.gcount(); zs.next_in = reinterpret_cast<Bytef*>(buffer); do { zs.avail_out = sizeof(buffer); zs.next_out = reinterpret_cast<Bytef*>(buffer); if (deflate(&zs, Z_FINISH) == Z_STREAM_ERROR) { cout << "Failed to compress data!" << endl; deflateEnd(&zs); return false; } fout.write(buffer, sizeof(buffer) - zs.avail_out); } while (zs.avail_out == 0); } // 结束压缩 deflateEnd(&zs); fin.close(); fout.close(); return true; } // 解压缩函数 bool decompressFile(const char* srcFile, const char* dstFile) { ifstream fin(srcFile, ios::binary); if (!fin) { cout << "Failed to open source file! << endl; return false; } ofstream fout(dstFile, ios::binary); if (!fout) { cout << "Failed to create destination file!" << endl; return false; } // 初始化 zlib z_stream zs; memset(&zs, 0, sizeof(zs)); if (inflateInit(&zs) != Z_OK) { cout << "Failed to initialize zlib!" << endl; return false; } // 解压数据 char buffer[1024]; while (!fin.eof()) { fin.read(buffer, sizeof(buffer)); zs.avail_in = fin.gcount(); zs.next_in = reinterpret_cast<Bytef*>(buffer); do { zs.avail_out = sizeof(buffer); zs.next_out = reinterpret_cast<Bytef*>(buffer); if (inflate(&zs, Z_NO_FLUSH) == Z_STREAM_ERROR) { cout << "Failed to decompress data!" << endl; inflateEnd(&zs); return false; } fout.write(buffer, sizeof(buffer) - zs.avail_out); } while (zs.avail_out == 0); } // 结束解压 inflateEnd(&zs); fin.close(); fout.close(); return true; } int main() { const char* srcFile = "test.txt"; const char* zipFile = "test.zip"; const char* dstFile = "test_copy.txt"; // 压缩文件 if (compressFile(srcFile, zipFile)) { cout << "Compress file success!" << endl; } else { cout << "Compress file failed!" << endl; return -1; } // 解压文件 if (decompressFile(zipFile, dstFile)) { cout << "Decompress file success!" << endl; } else { cout << "Decompress file failed!" << endl; return -1; } return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

czxboys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值