创建从正在创建的 tar 文件创建的 7zip 存档的校验和

创建从正在创建的 tar 文件创建的 7zip 存档的校验和

我想解决一个问题(您可以阅读这里因为我觉得这不应该是问题的一部分)。

所以这就是我想出的:

$ tar -cO Templates | 7z a -si -mx=3 -p /t/out.tar.7z

我正在计算机上使用该Templates文件夹,因此我可以先用极少量的数据对其进行测试。

它的工作原理正如预期的那样。

但是,当我想创建它的校验和时,它失败了:

$ tar -cO Templates | 7z a -si -so -mx=3 -p | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)


Error:
Incorrect command line
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

我注意到,当我执行第一段代码中的内容时,7zip 存档内的 tar 球被称为out.tar.事实上,这就是为什么我让它以 结尾.tar.7z:所以焦油球的名称以 结尾.tar

所以也许我仍然应该包含文件名,特别是因为7z其手册页中命令的整个概要是:

7z [adeltux] [-] [SWITCH] <ARCHIVE_NAME> <ARGUMENTS>...

不幸的是,这也不起作用:

$ tar -cO Templates | 7z a -si -so -mx=3 -p out.tar.7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Creating archive stdout


Enter password (will not be echoed) :
Verify password (will not be echoed) :


System error:
E_NOTIMPL                
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

如果我明确声明存档类型,它甚至不起作用:

$ tar -cO Templates | 7z a -si -so -mx=3 -p -t7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)


Error:
Incorrect command line
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

  

$ tar -cO Templates | 7z a -si -so -mx=3 -p -t7z out.tar.7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Creating archive stdout


Enter password (will not be echoed) :
Verify password (will not be echoed) :


System error:
E_NOTIMPL                
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

我该如何解决这个问题?将数据写入其目的地然后对该文件进行哈希处理不是一种选择。我需要对数据进行加密。

答案1

问题是 7zip 文件格式需要寻求可用,因此您不能使用该7z文件格式-so(per在项目页面发表评论)。使用另一种格式,例如xz似乎可行:

$ tar -cO Templates | 7z a -an -txz -si -so | tee tarball.xz | sha256sum ; sha256sum tarball.xz

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Creating archive stdout


Everything is Ok
4349a01e62a7d7b6cfd46caa90ee38904227fc09ef643d87eb8209bc53cb8e50  -
4349a01e62a7d7b6cfd46caa90ee38904227fc09ef643d87eb8209bc53cb8e50  tarball.xz

但是,您将无法对适用于此格式的存档设置密码(gzipbzip2xz)。

相关内容