You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用7-Zip通过单条命令递归提取多层压缩文件

如何使用7-Zip通过单条命令递归提取多层压缩文件

你提到的链式命令确实需要提前知道每一层的文件名,还会生成中间压缩文件,有点麻烦。其实我们可以利用7-Zip的标准输入输出参数,用一条管道命令就能递归解压多层嵌套的压缩包,而且不需要知道中间文件名,也不会留下临时文件。

直接用这条命令就能一步到位提取出最终的database.sql

7z e -so /path/to/example.7z | 7z e -si -o./

给你拆解下每个参数的作用:

  • -so:让第一个7-Zip命令将解压后的内容输出到标准输出(而不是保存成物理文件)
  • |:管道符,把前一个命令的输出直接传递给后一个命令作为输入
  • -si:让第二个7-Zip命令从标准输入读取要解压的内容
  • -o./:指定最终文件的输出目录(这里是当前目录,你可以换成自己需要的具体路径)

如果你的嵌套压缩层数更多(比如还有第三层),只需要继续追加管道和7-Zip命令就行,比如:

7z e -so /path/to/example.7z | 7z e -si -so | 7z e -si -o./

另外,如果嵌套的是gz格式,你也可以用gzip来代替第二层的7-Zip命令,效果是一样的:

7z e -so /path/to/example.7z | gzip -d > database.sql

备注:内容来源于stack exchange,提问作者Nathan J.B.

火山引擎 最新活动