Перезапис середини файлу з блочного пристрою * без * відсікання файлу?


2

У мене є система Linux (Kubuntu) з великим файлом (~ 20Gb), з яким я хотів би зіткнутися. Зокрема, я хочу скопіювати весь вміст іншого великого файлу (~ 12Gb) до середини цього файлу і зберегти біти файлу, які не перезаписуються.

Це те, що я хочу зробити, з текстом між трубами, що представляють вміст файлу:

До:

outfile: |abcdefghijklmnopqrstuvwxyz|
infile:  |123456789|

Після:

outfile: |abcdef123456789pqrstuvwxyz|
(infile is here ^^^^^^^^^)

Я спробував:

dd if=infile of=outfile seek=162

(162 - це кількість секторів, які я хочу компенсувати в outfile)

Але це сталося:

outfile: |abcdef123456789|
(missing part of outfile ^)

Який найкращий спосіб це зробити?

Відповіді:


5

Потрібно вказати conv = notrunc для dd. З ручної сторінки

Будь-який звичайний вихідний файл обрізається, якщо значення конверсії notrunc                 вказано. Якщо початкова частина вихідного файлу                 шукати минуле (див. операнд oseek), вихідний файл                 у цьому пункті.


Працює відмінно, дякую вам! Я прочитав dd --help, але не спробував сторінку man. Дуже мені ...
marcusw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.