如下来自UNZIP(1L)手册页
尚不支持从标准输入读取的档案
是否有其他 CLI 程序在 Linux/cygwin 下运行,可以从 zip 档案中提取并从 stdin 读取它们?
我正在寻找一种在导出 WSL2 发行版时压缩它的方法,并尝试通过管道传递由 to 生成的 tar 文件wsl,7z但大约一个小时后,它只产生 CPU 负载,并且该7z过程甚至没有根据到任务管理器:
wsl --export myDistro - | 7z a -tgzip myDistro.tar.gz -si
Run Code Online (Sandbox Code Playgroud)
7z并且sample.tar.gz创建时没有任何问题:
Get-Content -Path sample.tar -Raw | 7z a -tgzip sample.tar.gz -si
Run Code Online (Sandbox Code Playgroud)
wsl --export myDistro .\myDistro.tar
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何将导出的 WSL2 发行版压缩为 gzip 存档而不将 tar 文件存储在磁盘上,以及如何通过管道导入它wsl --import?
正如 @DanielB 注意到的,PowerShell 不会按原样通过管道传输数据(请参阅此处和此处),但是命名管道呢?
wsl无法处理命名管道:
$ New-Object System.IO.Pipes.NamedPipeServerStream("\\.\pipe\wsl-exp-imp"); wsl --export experimentinGentoo '\\.\pipe\wsl-exp-imp' …Run Code Online (Sandbox Code Playgroud)