cp /dev/zero filename creates large files

Peter J. Acklam pjacklam@online.no
Thu Sep 25 11:24:00 GMT 2003


Don Sharp <dwsharp@iee.org> wrote:

>I carried out the following sequence of commands
>
>$ for i in `cat /tmp/d`; do if [ -f $i.idx ]; then ls -l ${i}*; fi; done
>-rw-r--r--    1 don      None            0 Jun 17  1998 dtaq
>-rw-r--r--    1 don      None         3072 Jun 17  1998 dtaq.idx
>$ cp /dev/zero dtaq.idx
>
>The cp appeared to be hanging and the disc was rattling away, so in
>another window I typed in
>
>$ ls -l dtaq*
>-rw-r--r--    1 don      None            0 Jun 17  1998 dtaq
>-rw-r--r--    1 don      None     65307648 Jun 17  1998 dtaq.idx
>
>and you can see that the reported size of the target of the 'cp
>/dev/zero' has grown to a considerable size in a short time.
>
>Can anyone else reproduce this?

Hopefull, everyone can reproduce this.  I think you are mixing
/dev/zero with /dev/null.  /dev/zero will always return a buffer
full of zeros (that is NULs, not the digit or letter zero).
/dev/zero has infinite length, so copying from it with "cp" to
a regular file will always cause you do run out of disk space.

Peter

-- 
Peter J. Acklam - pjacklam@online.no - http://home.online.no/~pjacklam


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list