Как я могу получить md5sum для всех файлов внутри zip без распаковки

avatar
arunkumar A
8 августа 2021 в 17:18
851
1
-2

Есть ли способ получить md5sum для всех/любых файлов внутри zip без распаковки zip?

Я могу распаковать необходимые файлы с помощью распаковки <.zip>

Но мне нужно получить md5sum без распаковки zip.

Источник
Someone_who_likes_SE
8 августа 2021 в 17:28
0

Покажите свои исследовательские усилия!

Ответы (1)

avatar
zedfoxus
8 августа 2021 в 17:26
3

Возможно, это не совсем то, что вы ищете, но это сблизит вас. Вы бы не извлекали весь zip, а извлекали бы файл, чтобы передать его в md5sum для получения контрольной суммы. Без чтения содержимого файла md5sum не сможет сгенерировать хеш.

Допустим, у вас есть 3 файла с этим MD5:

b1946ac92492d2347c6235b4d2611184  a.txt
591785b794601e212b260e25925636fd  b.txt
6f5902ac237024bdd0c176cb93063dc4  c.txt

Вы заархивируете их в один файл, используя zip final.zip a.txt b.txt c.txt

Когда вы перечисляете файлы, вы видите 3 файла.

unzip -l final.zip
Archive:  final.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        6  2021-08-08 17:20   a.txt
        6  2021-08-08 17:20   b.txt
       12  2021-08-08 17:20   c.txt
---------                     -------
       24                     3 files

Чтобы получить MD5 для каждого из файлов, не распаковывая весь zip, вы можете сделать следующее:

unzip -p final.zip a.txt | md5sum
b1946ac92492d2347c6235b4d2611184  -

unzip -p final.zip b.txt | md5sum
591785b794601e212b260e25925636fd  -

unzip -p final.zip c.txt | md5sum
6f5902ac237024bdd0c176cb93063dc4  -

Альтернативный

Вы можете выполнить md5sum *.txt > checksums, чтобы получить хэш всех файлов и сохранить их в файле контрольных сумм. Добавьте это в zip, чтобы вы знали md5 каждого файла, когда файлы были добавлены в zip.

arunkumar A
8 августа 2021 в 17:36
0

Большое спасибо, это то, что я ожидал. это работает шарм :)

zedfoxus
8 августа 2021 в 18:50
0

@arunkumarКруто. Не стесняйтесь отмечать это как принятый ответ. Это можно сделать, нажав на галочку рядом с ответом. Я вижу, что вы задали еще один вопрос. Если один из ответов на этот другой вопрос подходит, вы можете пометить его как принятый и для этого вопроса.