Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Aug 2006 13:00:40 -0500
From:      "Rick C. Petty" <rick-freebsd@kiwi-computer.com>
To:        Eric Anderson <anderson@centtech.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: [PATCH] adding two new options to 'cp'
Message-ID:  <20060801180040.GA4272@megan.kiwi-computer.com>
In-Reply-To: <44CF94A4.3000306@centtech.com>
References:  <44CE199C.2020500@centtech.com> <17614.8289.134373.387558@bhuda.mired.org> <96b30c400607310847s1d2f845eo212b234d03f51e9a@mail.gmail.com> <17614.10982.499561.139268@bhuda.mired.org> <ealpn1$lan$1@sea.gmane.org> <20060801072611.GA717@turion.vk2pj.dyndns.org> <20060801171150.GB3413@megan.kiwi-computer.com> <44CF8F1A.5090506@centtech.com> <20060801174048.GE3413@megan.kiwi-computer.com> <44CF94A4.3000306@centtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 01, 2006 at 12:51:32PM -0500, Eric Anderson wrote:
> On 08/01/06 12:40, Rick C. Petty wrote:
> 
> It could possibly be bad if you have a real file (say a 10GB file, 
> partially filled with zeros - a disk image created with dd for 
> instance), and you use cp with something like -spR to recursively copy 
> all files.  Your destination disk image would then be a sparse file, so 
> additional changes and modifications to the file (block allocations) 
> would fragment the image and make it slower.  That would be unexpected 
> and probably go unnoticed for some time.  I do see the usefulness in 
> this, but I think one needs to be careful to either clearly note in the 
> man page that it will make sparse files from *any* file containing a 
> string of zeros larger than the block size,

I completely agree.  This is why it would not be the default behavior.
Also, gnutar provides this option and it just describes it as "handle
sparse files efficiently"-- so a rewording of that to say that by
"efficient" we mean that the program will allocate as few blocks as
possible in the underlying filesystem.  I think a clear description in
the man page would suffice.

> or it needs to 'do the right 
> thing' and determine if it's sparse or not.

Unfortunately that would require knowledge which the POSIX calls have no
knowledge of.  I don't believe we should roll filesystem-specific knowledge
into cp.  However, there is utility in performing a "space-saving" copy,
just as a hardlink is quite space-saving.  =)

"-s" or "-S" could refer to sparse, space, squeeze, shrink, or whatever.

-- Rick C. Petty



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060801180040.GA4272>