June 3rd, 2008

nepal

перепаковка архива

Вдруг кто что умное скажет, а то я вроде понимаю, что можно, но как -- не ведаю.

Задачка. Есть tar.gz архив (много мегабайт, много файлов). В нём, грубо говоря, есть каталоги foo, bar и baz, причём 99% всего лежит в bar). Надо сделать другой tar.gz, в котором только содержимое bar.

Сейчас я решаю задачу так:
tar xzpf orig.tar.gz -C tmpdir
tar czpf new.tar.gz -C tmpdir/bar/ .

Проблема в том, что это дорого (по disk I/O) и долго.

В качестве варианта рассматриваю использование tmpfs, но всё равно это выглядит как хак. В идеале видится некий пайп, вот только нарисовать его не получается :(