[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#5918: [dd] conv=sparse option
From: |
Pádraig Brady |
Subject: |
bug#5918: [dd] conv=sparse option |
Date: |
Sat, 10 Apr 2010 16:33:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 |
On 10/04/10 01:28, Heinrich Langos wrote:
> Hello Andreas, Samuel and list,
>
> sorry to pick up such an old thread, but I stumbled upon it while
> looking for an efficient way to "re-sparse" files that contain a
> lot of zero blocks but
> 1) had already been expanded
> or
> 2) are being expanded due to pipes.
>
> On Sun, Dec 30, 2007 at 10:19:54AM +0100, Andreas Schwab wrote:
>> Samuel Thibault <address@hidden> writes:
>>
>>> Some time ago, I wrote a conv=sparse option for dd, attached is the
>>> patch.
>>
>> How is it different from cp --sparse=always?
>
> I'd say in enough ways to make such an option highly desirable.
>
> a) "dd" will maintain an existing of=target file including the inode
> number, thus respecting existing hard links. "cp" will depending
> on the other options given (e.g. "-a") maintain or break existing
> hard links to an existing target file.
I don't think that's possible as holes can only be created at the end of a file.
Well I think NTFS supports punching holes in the "middle" but it's not common.
>
> b) "dd" could read a stream from a device or stdin and write it directly
> to a sparse file. no need to "dd" from e.g. a block device to a file and
> afterwards do a "cp --sparse=always file sparse-file". this will save a
> lot of disk space, io operations and time.
This seems to work:
cp --sparse=always /dev/stdin file
cheers,
Pádraig.