Dave Sherohman wrote: > > On Sun, Aug 05, 2001 at 08:16:11AM -0500, Carl Wilhelm Soderstrom wrote: > > > The basic algorithm for to copy in a _file_ (not a directory, pipe, et al) is: > > > > > > read $i # actually, this is the cpio header data (inode info) for the > > > # file, which is followed in a cpio archive by the file itself > > > if [ -e $i ] > > > then rm -f $i > > ^^^^^ > > > > wait a second here! cpio is supposed to *copy* files, not *move* > > them. the man page repeatedly uses the word 'copy', and never mentions > > anything about 'delete'. > > No,w I have to agree with you, Carl, that deletion really shouldn't be > part of cpio's fetaure set, but the example you quoted has nothing to > do with moving files. It's deleting any preexisting file on the > destination filename; the source file is untouched. Unless the source > and destination are the same file, in which case Bad Things Happen. > > cp is smart enough to complain that "`foo' and `foo' are the same file" > if you try to copy something onto itself, so I can't see why cpio > should destroy the file in that case. > Because cp(1) has logic that checks. cpio(1) doesn't. Both commands use unlink(2) to remove files. -S