最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

windows 7z命令行压缩

网站源码admin18浏览0评论

windows 命令行用 7z[1] 压缩一个文件夹,并排除其中一些文件和文件夹,参考 [2]。

  • a:压缩的命令
  • -r:递归,可能是压缩文件夹时用?但其实我试过没加这个参数,也能正常把文件夹内所有文件加进来
  • -x!-xr!:排除一些文件,不加进最终压缩包里,可以多次使用。同样,那个 r 可能是为文件夹设置的?但不加好像也行…

如果要压缩的文件夹内包含一些软链接[3],也会把东西 copy 一份进去。

Example

一个要压缩的文件夹:

104/
|- nuswide-tc21.100pc.500pc/
|  |- avgpix.nuswide-tc21.100pc.500pc.npy
|  |- idx_labeled.npy
|  |- idx_ret.npy
|  |- idx_test.npy
|  `- idx_unlabeled.npy
`- nuswide-tc21.100pc.500pc.meta/
   |- idx_labeled.npy
   |- idx_ret.npy
   |- idx_test.npy
   `- idx_unlabeled.npy

要把它压缩成一个 .zip 文件,并把

  • 104/nuswide-tc21.100pc.500pc/avgpix.nuswide-tc21.100pc.500pc.npy
  • 104/nuswide-tc21.100pc.500pc/idx_labeled.npy
  • 104/nuswide-tc21.100pc.500pc.meta/

三者排除掉,命令:

  • 要把 7-zip 的安装目录加进 PATH
@7z a -tzip -r test.zip ^
	104/ ^
	-x!104/nuswide-tc21.100pc.500pc/avgpix.nuswide-tc21.100pc.500pc.npy ^
	-x!104/nuswide-tc21.100pc.500pc/idx_labeled.npy ^
	-xr!104/nuswide-tc21.100pc.500pc.meta

.tar.gz

在 linux 服务器用 unzip 解压 [4] 的其中一份数据 PnpAda_release_data.zip 时,报错:

error: invalid zip file with overlapped components (possible zip bomb)
 To unzip the file anyway, rerun the command with UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE environmnent variable

而在 windows 解压无报错。考虑在 windows 重新压缩成 .tar.gz 格式,传上服务器,再解压。windows 创建 .tar.gz 压缩文件参考 [6-8],有两种方案:

  1. 用 7-zip:7z a -ttar -so -an PnpAda_release_data | 7z a -si PnpAda_release_data.tar.gz。(我没有 7za.exe,只有 7z.exe,也能执行
  2. [6] 中一条 2020 年的评论说 windows 支持 tar 命令,可同在 linux 一样用 tar -zcvf PnpAda_release_data.tar.gz PnpAda_release_data 压缩。未测试,但在 windows 10 敲 tar 确实有此命令。

References

  1. 7-zip
  2. 7z 常用压缩与解压缩命令
  3. windows软链接
  4. Command-line Guide for Linux, Mac & Windows
  5. Sunxy11/ADR
  6. How do I use 7-Zip CLI for Windows to create .tar.gz archives?
  7. How to create tar file with 7zip
  8. How to Create tar.gz Archive File in Windows?
发布评论

评论列表(0)

  1. 暂无评论