On Thu, 27 Dec 2007, Diomidis Spinellis wrote:
dds 2007-12-27 11:33:42 UTC
FreeBSD src repository
Modified files:
bin/mv mv.c
Log:
- Roll-back attempts to mimic rename(2) atomicity introduced in 1.47,
and follow the letter of the POSIX specification.
- Moving a directory to an existing non-empty directory will now fail,
as required.
It should be noted that the previous behaviour was very dangerous. It
could destroy target directory trees of any size in order to replace
them with a typo, but of course a local rename() can only destroy the
target directory tree if that tree consists of an empty target directory.
The destroyed target directory tree cannot quite be /, but it can be
almost as important:
mkdir /tmp/usr
cd /tmp
mv usr / # when /tmp and /usr are on different fs's.
# this replaced /usr by the empty usr,
# using esentially the following:
mv /usr /usr.backup
cp -pRp usr /
rm -rf /usr.backup
rm -rf usr
Bruce
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"