[TUHS] moving directories in svr2
Will Senn
will.senn at gmail.com
Thu Dec 30 01:44:32 AEST 2021
On 12/29/21 9:17 AM, Clem Cole wrote:
> Not until the BSD rename system call,.
>
> Try it on V6 or V7 and you will get 'directory exists' as an error.
>
Sure enough. I never really noticed. I guess cuz I was careful about
creating directories in the first place.
> Think about the UNIX FS and the link system call. How is mv
> implemented? You link the file to the new directory and the unlink
> it from the old one. But a directory file can not be in two
> directories at the same time as the .. link would fail. When Joy
> created the rename system call it became possible. Until System V
> picked it up (IIRC was SVR3), only system that supported the BSD world.
>
Nice summary. I will add it to my systems programming investigations list.
> What I have forgotten is if the BSD mv command for 4.1 supported it.
> If it did then it was not atomic -- it would have had to create the
> new directory, move the contents independently and then remove the old
> one.
>
> FWIW: when we did the first SMP UNIX at Masscomp we had supported the
> BSD FS and the 4.1c/4.2 system calls. Joy's implementation of rename
> was a real mess. Making it atomic, supporting an SMP and deal with
> all the recovery paths on an error took some work. It's funny, the
> rename system call is a simple idea, but on a failure when
> partially thru it, makes unwinding the partial completion an
> interesting problem.
It's impressive what early work was done and how few today really
understand the challenges that were met and overcome to give us our
cushy oses.
>
> Clem
>
> On Wed, Dec 29, 2021 at 9:34 AM Will Senn <will.senn at gmail.com> wrote:
>
> I'm a little flummoxed in trying to move some directories around
> in svr2. Shouldn't the following work?
>
> mkdir a
> mkdir b
> mv a b
>
> I get the following error:
> mv: b exists
>
> I tried many of the possible variants including:
>
> mv a b/
> mv: b/ exists
> mv a b/a
> mv: directory rename only
> cd b
> mv ../a .
> mv: . exists
> mv ../a ./
> mv: ./ exists
> mv ../a ./a
> mv: directory rename only
>
>
> If moving directories into existing directories wasn't allowed in
> those days, 1) how were directories managed? and 2) when did
> moving directories into directories become a thing?
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20211229/c533564a/attachment.htm>
More information about the TUHS
mailing list