Создание контрольной суммы архива 7zip, созданного из создаваемого файла tar

Я хочу решить проблему (которую вы можете прочитать здесь, поскольку я не чувствую, что это должно быть частью вопроса).

Так вот что я придумал:

$ 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 - 

Я заметил, что когда я выполняю то, что находится в первом блоке кода, tar-файл в архиве 7zip вызывается out.tar . Фактически, вот почему я позволил этому положить конец .tar.7z : Таким образом, имя tar-шара заканчивается на .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 - 

Как я могу это решить? Запись данных в пункт назначения, а затем хэширование этого файла не является вариантом. Мне нужны данные для шифрования.

  • Как использовать bash для архивирования всех каталогов?
  • Почему серверы не используют 7z?
  • Каков правильный способ использования альтернативного двоичного кода
  • Создайте 7z-архив без сжатия с помощью Ark
  • Как указать кодировку символов для 7z?
  • Как я могу переупаковать zip в 7zip?
  • Извлечение файла 2.7z 7z
  • Получите процентную информацию от команды 7z в bash
  • One Solution collect form web for “Создание контрольной суммы архива 7zip, созданного из создаваемого файла tar”

    Проблема в том, что формат файла 7zip требует поиска, поэтому вы не можете использовать формат файла 7z с -so (на этот комментарий на странице проекта). Использование другого формата, такого как 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 ).

    Linux и Unix - лучшая ОС в мире.