Re: lug-bg: влияние на размера на блока
- Subject: Re: lug-bg: влияние на размера на блока
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Wed, 25 Aug 2004 13:27:52 +0300
On Tue, Aug 24, 2004 at 02:48:30PM +0300, Peter Pentchev wrote:
> On Tue, Aug 24, 2004 at 01:57:22PM +0300, Romeo Ninov wrote:
> > Имам следната ситуация:
> > изшълнявам следната команда tar cf - <files>|bzip2 -9
> > Интересува ме има ли някой идея какво е влиянието на размера на блока,
> > дефиниран от tar : --block-size=N върху степента и скоростта на
> > компресия на bzip2
>
> Според мен не би трябвало да има никакво значение. От това, което чета
> за формата на tar архиви в manual page tar(5) във FreeBSD 5.x (след като
> Тим Кинцле създаде bsdtar и документира файловите формати), тази опция
> управлява единствено това колко запълване да има на края на всеки файл.
Олеле. Олелееееее... кой не може да чете :(((
Всъщност, като прочетох пак tar(5) manual page (може и на
http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5&manpath=FreeBSD%205.2-current -
мда, sektion, не section, Волфрам Шнайдер е бил немскоговорящ, като е
писал CGI скрипта ;), там пише...
General Format
A tar archive consists of a series of 512-byte records. Each filesystem
object requires a header record which stores basic metadata (pathname,
owner, permissions, etc.) and zero or more records containing any file
data. The end of the archive is indicated by two records consisting
entirely of zero bytes.
For compatibility with tape drives that use fixed block sizes, programs
that read or write tar files always read or write a fixed number of
records with each I/O operation. These ``blocks'' are always a multiple
of the record size. The most common block size--and the maximum sup-
ported by historic implementations--is 10240 bytes or 20 records.
И сега ако някой успее да ми обясни как точно успях в това да прочета,
че *всеки* файл бива допълнен до размера на блока :(( Това, което
всъщност пише, е, че всеки файл бива допълнен до размера на *записа* от
512 байта, и че само на края на архива може да се наложи допълване до
размера на блока. Гррррррр.
[snip]
> С други думи, какъвто и размер да избереш, tar няма да вмъква никаква
> контролна информация "по средата" на съдържанието на архивираните
> файлове. Единственото, за което размерът има значение, е колко байта с
> нули ще има на края на всеки файл - хм, сега като се замисля, това
> наистина би могло да има значение, ако архивираш голям брой файлове,
> всеки от които е с размер доста по-малък от 10KB (10KB е размерът на
> блок по подразбиране) - тогава може да се окажеш в ситуация, в която
> архивът съдържа доста повече нули, отколкото истински файлове.
Мда, това, което искам да кажа, е, че тази част просто не е вярна:
колкото и голям размер на блок да избереш, tar винаги ще допълва
*отделните файлове* до 512 байта, а само *целия архив* накрая до размера
на блока. При това положение спокойно можеш да слагаш какъвто искаш
размер, на никого не му пука ;)
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
Nostalgia ain't what it used to be.
Attachment:
pgpHsSfn_WtxL.pgp
Description: PGP signature
|