Допишите недостающую часть

у меня есть файл на мой резервный диск, который является [Ф1] (30 Гб).

у меня есть файл на обычном диске, [Ф2] (60 Гб, первые 30 Гб гарантированно будет точно так же).

как я могу добавить только недостающую часть без скопировав файл целиком?

может что-то с [Ф3] будет работать?

1
задан 4 June 2018 в 04:12

2 ответа

Да, вы можете использовать dd - трюк состоит в том, чтобы выбрать оба bs x skip и obs x seek, равные точному требуемому смещению

Пример [!d2 ]

Сначала давайте сгенерируем тестовый файл. Для иллюстрации я выбрал 60MiB, а не 60GiB:

$ dd if=/dev/urandom bs=1M iflag=fullblock count=60 of=origfile
60+0 records in
60+0 records out
62914560 bytes (63 MB, 60 MiB) copied, 0.376846 s, 167 MB/s

Теперь давайте скопируем именно первую половину из него - снова используя dd (хотя это не обязательно)

$ dd if=origfile bs=1M iflag=fullblock count=30 of=newfile
30+0 records in
30+0 records out
31457280 bytes (31 MB, 30 MiB) copied, 0.063891 s, 492 MB/s

Убедитесь, что они разные:

$ cmp origfile newfile
cmp: EOF on newfile after byte 31457280, in line 122106

Теперь давайте скопируем с origfile на newfile, пропустив первый 30 x 1M блоков обоих файлов:

$ dd if=origfile bs=1M iflag=fullblock skip=30 count=30 of=newfile seek=30
30+0 records in
30+0 records out
31457280 bytes (31 MB, 30 MiB) copied, 0.0632964 s, 497 MB/s

Наконец, убедитесь, что файлы теперь идентичны:

$ cmp origfile newfile
$ 
2
ответ дан 8 June 2018 в 13:39

Это огромный файл, но если он обрабатывает размер, вы можете использовать команду split, чтобы разбить 60GB-файл на file1 и file2. Затем используйте cat, чтобы поместить части, которые вы хотите объединить.

Пример:

split -n2 60Gfile
cat xab >> 30Gfile

split -n2 разбивает файл пополам и делает 2 файла с именем xaa и xab

Если это не делает то, что вы хотите, прочитайте разделенное руководство, так как команда имеет другие параметры.

0
ответ дан 8 June 2018 в 13:39
  • 1
    Теперь я знаю о другой команде. Для будущих читателей: [в F1] вывод второй половине файла [Ф2]; это полезно для сопряжения с другими командами. параметр [Ф3] разделяет каждые N байт. – tfstwbbnb 4 June 2018 в 05:34

Другие вопросы по тегам:

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