копирование (запись) блоков в файл

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

копирование (запись) блоков в файл

Сообщение Mellon »

надо записать (вписать) один файл (последовательность блоков) в другой начиная с определённого места(блока) в файле назначения.
надеялся на dd но он просто затирает файл назначения :(
Нашел вот этот ман http://www.citforum.ru/operating_systems/manpages/BC.1.shtml
Но самой программы не нашел :(
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: копирование (запись) блоков в файл

Сообщение elide »

bcopy работает точно так же как и dd, только интерактивно.
вообще, не существует способа вставить данные в середину файла.
т.е. вот вообще их нету. вернее они есть, но для использования не предназначены и тебе тебе о них лучше не знать.
поэтому любая вставка в середину файла делаться так
1) создаётся временный файл
2) в него копируется часть целевого файла до места вставка
3) в него копируются данные, которые надо вставить
4) в него копируется остаток целевого файла
5) целевой файл удаляется, а временный кладётся на его место.
так что, думай.
слава роботам!
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: копирование (запись) блоков в файл

Сообщение Mellon »

поэтому любая вставка в середину файла делаться так...

это не совсем то. Надо было вставить блоки с замещением (стиранием) тех что были на их месте. а юзать для рутинной операции hex-редактор резона не было.
Вопрос в практическом плане уже не актуален, ибо пошёл в обход :)
НО всёравно спасибо!
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: копирование (запись) блоков в файл

Сообщение elide »

так ты бы так и сказал....
dd вполне справляется с этим. у него есть seek, skip и conv=notrunc

Код: Выделить всё

elide@serenity| ~/tmp/dd >> echo '1234567890' > out
elide@serenity| ~/tmp/dd >> echo 'xxx' > in
elide@serenity| ~/tmp/dd >> dd if=in of=out conv=notrunc bs=1 seek=5 count=3
3+0 записей считано
3+0 записей написано
3 bytes (3 B) copied, 0,000181589 s, 16,5 kB/s
elide@serenity| ~/tmp/dd >> cat out
12345xxx90
elide@serenity| ~/tmp/dd >>
слава роботам!
Спасибо сказали: