Как я повторно собираю случайным образом названные фрагменты файла tar?

Вы можете вставить команду pv -TC в свою строку конвейера:

cmd1 | pv -TC | cmd2

pv использует свой собственный буфер, а -T сообщает, насколько он заполнен в среднем. с периодом 1 секунда (по умолчанию).

Если всегда 100%, то это означает, что cmd1 быстрее производит вывод, чем cmd2 при его потреблении. Если нет, то все наоборот. Помните, что сами каналы могут содержать 64 КБ.

См. Также -B , чтобы указать размер буфера pv . Вы можете использовать несколько pv , например:

$ cmd1 | pv -cCTrbN 'cmd1 -> cmd2' | cmd2 | pv -cCTrbN 'cmd2 -> cmd3' | cmd3
cmd1 -> cmd2: 1.92GiB { 53%} [ 387MiB/s]
cmd2 -> cmd3: 1.92GiB {  0%} [ 387MiB/s]
1
21.02.2014, 08:04
3 ответа

Здесь есть противоречие:

Я попытался объединить файлы вместе в различном порядке (альфа, альфа обратный, по очевидным датам), и каждый умирает , когда я пытаюсь извлечь полученный архив либо с «усеченным вводом gzip», либо с «ошибкой сжатия gzip». Однако, похоже, что разные порядки, в которых я объединяю файлы в , дают разное количество правильных данных,

Если они не работают и выдают ошибку, в каком смысле они дают количество правильных данных? data?

В любом случае, если все они работают как файлы tar по отдельности, но урезаны, вам, вероятно, не повезло; tar-файлы начинаются с заголовка , откуда берется информация. Таким образом, любой файл, который выглядит как tar-файл таким образом , является tar-файлом - это не часть из середины файла, поскольку такая часть не будет содержать заголовок. В частности, заголовок не находится точно в нужном месте, что позволяет им функционировать как отдельный файл tar.

Однако , если вы посмотрите на то, что вы действительно можете найти в каждой части, они могут содержать разные части по любой причине; они также могут содержать одно и то же, но разной длины.

0
27.01.2020, 23:53
[118689]Вам нужно составить все возможные приказы. Способ на Perl:

и

В зависимости от количества кусков сложность составляет [119028]n![119029]. См. также [119030]Пермутация[119031].[118694].
1
27.01.2020, 23:53

Если все файлы ненулевого размера показывают, что это tar-файл, то это так. Проще проверить, что при использовании команды [11682]file[11683] из командной строки, нет необходимости переименовывать файлы для этого.

Однако, если при скомкатации tar-файлов не получится извлечь новый tar-файл, то можно попробовать сделать это, используя что-то вроде:

Обратите внимание, что b не отображается в результате tar (он есть, но в конце [11684]a есть какой-то маркер конца файла). tar[11685], что заставляет [11686]tar[11687] перестать читать из файла.

Таким образом, объединение tar-файлов вместе, как вы указываете, не поможет. Вы можете попробовать извлечь содержимое из tar-файлов по одному и посмотреть на любые файлы в каталоге (который вы указываете как "папку") и использовать [11688]file[11689] на этих извлечённых данных, чтобы посмотреть, не найдёте ли вы что-нибудь, что является каким-то типом архива. Надеюсь, вы найдете что-то, что имеет смысл (другой, возможно, сжатый, [11690]tar[11691] или cpio архив, что будет заголовком и будет работать оттуда, объединяя вывод вместе.

enter image description here

Убедитесь, что переименовали каждую распакованную выходную директорию/папку, так как все они имеют одно и то же имя.

enter image description here

В tar-файлах (или в конце за маркером tar) может содержаться дополнительная информация, которую программа, создавшая эти файлы, может использовать для реконструкции:

не зная программы, которая это сделала.

ping google.com >> "%USERPROFILE%\Desktop\list.txt"
Части 2 ГБ имеют смысл, так как существует ограничение на размер файлов на старых (файловых) системах. Архивы видеофайлов, в которых я впервые преодолел этот лимит еще в середине 90-х, и мне пришлось перейти с использования EFS на XFS в качестве файловой системы

.
0
27.01.2020, 23:53

Теги

Похожие вопросы