Em Sex, 2007-10-19 C s 13:52 -0400, Douglas A. Tutty escreveu: > On Fri, Oct 19, 2007 at 09:19:21AM -0400, Nick Guenther wrote: > > On 10/19/07, Tom Van Looy <[EMAIL PROTECTED]> wrote: > > > Richard Toohey wrote: > > > > On 19/10/2007, at 8:12 PM, Raimo Niskanen wrote: > > > > > > > > Looks like OpenBSD, FreeBSD, and Mac OS X BSD bits have the same > > > > sort of outcome. > > > > > > > > Copy foo to foo only once and quit, I think that's the correct > > > > behaviour. I even think that posix more or less describes that. > > > > > > > > That's what it should be doing I guess. But it's tricky, if you start > > > > doing symlinks etc, you'll end up looping sooner or later. What if the > > > > directoy's are not named the same (eg: hard links)? > > > > > > > correction: hard links are not allowed on directory's, ... > > > that being said, comparing inodes seems the best solution > > > > > > only, don't give an error but copy once > > > maybe if I have time this weekend I'll try code that behaviour > > > > > > Anyway, it has worked like that since years, and I guess nobody has had > > > a problem with it before. I don't think it should be changed just > > > because some bored guy playing with it noticed strange output ;-p > > > > Sure, but "bored guy" can translate to "new ideas" and testing > > somehow-still-untested code paths. It's worth a shot at fixing. > > For what its worth, all I can offer is moral support since I don't code > C. > > Conceptually, though, why can't cp look at the source directory and take a > snapshot, a to-do-list, of everything it has to copy, then do it? That > way, any recursion would be completed before the target directory > appeared in the source directory. With only an -R (no -H -L or -P), it > should copy links as links which should avoid loops. > > How do scp and rsync do it? > > Doug. >
At linux 2.6.22 (Ubuntu 7.10) $ mkdir foo $ scp -r foo localhost:/home/spyro/foo/ foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/f oo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/fo o/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo /foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/ foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/f oo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/fo o/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo /foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/ foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/f oo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/fo o/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo /foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/ foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/f oo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/fo o/foo/foo/foo/foo/foo: name too long Using OpenSSH_4.6p1 Debian-5build1, OpenSSL 0.9.8e 23 Feb 2007