我想解决一个问题(您可以阅读这里因为我觉得这不应该是问题的一部分)。
所以这就是我想出的:
$ 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
但是,您将无法对适用于此格式的存档设置密码(gzip
、bzip2
和xz
)。