jam*_*mes 17 linux compression tar
我使用 GNU tar。它可以在压缩/解压缩文件时自动检测压缩类型。但是我需要从 stdin 解压缩存档,并且压缩类型未知。我注意到 tar 可以给我正确的建议,例如:
tar: Archive is compressed. Use -z option
Run Code Online (Sandbox Code Playgroud)
但我希望 tar自动使用该压缩选项,而无需我输入该参数。我怎样才能做到这一点?为什么 tar 不直接解压,因为它已经知道压缩类型了?
谢谢!
Kev*_*nko 10
这不是您想听到的答案,但是根据其手册,GNU tar 不支持此答案:
在读取存档时必须指定解压缩选项的唯一情况是从管道或不支持随机访问的磁带驱动器读取。但是,在这种情况下,GNU tar 将指示您应该使用哪个选项。例如:
Run Code Online (Sandbox Code Playgroud)$ cat archive.tar.gz | tar tf - tar: Archive is compressed. Use -z option tar: Error is not recoverable: exiting now如果您看到此类诊断信息,只需将建议的选项添加到 GNU tar 的调用中:
Run Code Online (Sandbox Code Playgroud)$ cat archive.tar.gz | tar tzf -
最后,我意识到我不能让 tar 检测并从 stdin 解压缩存档的原因是我使用了 GNU tar。BSD tar 可以毫无问题地自动完成。所以我决定现在在我的脚本中使用 bsdtar 而不是 tar。
| 归档时间: |
|
| 查看次数: |
6261 次 |
| 最近记录: |