bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#69532: mv's new -x option should be made orthogonal to -t/-T/default


From: Paul Eggert
Subject: bug#69532: mv's new -x option should be made orthogonal to -t/-T/default
Date: Mon, 4 Mar 2024 16:24:27 -0800
User-agent: Mozilla Thunderbird

On 3/4/24 15:37, Petr Malat wrote:
Why do you expect this?

I expect it because mv has always treated destination directories that way. This has been true since the 1970s. We should not change this basic mode of operation.


To fix this, 'mv -x' should respect the usual mv behavior with respect to
directories. For example, when D is a directory 'mv -x A B C D' should act
like 'mv A B C D' except that D's old entries should be renamed back to A B
and C. And the -t and -T options should work with -x the same way they work
when -x is not specified.

I do not think this is a good idea, because that operation is not
atomic.

There's nothing wrong with 'mv -x a b c d/' being nonatomic. "mv a b c d/" is not atomic either, and that's fine too.


Probably, the user wants to prepare a temporary directory
instead and then atomically swap it with the directory in use.

This usage was not at all obvious to me. If it's the intended use, I suggest inventing a new command, or adding -x to the 'rename' command instead. Pushing this flag onto 'mv', without making the flag reasonably orthogonal to mv's other options, would be a mistake because it would cause too much confusion.


Supporting swap for more than 2 files also brings a problem, when
the operation fails as then one doesn't know what has been swapped
and what not.

I don't see why not. The user can look at mv's diagnostics. It's the same as regular "mv a b c d/".






reply via email to

[Prev in Thread] Current Thread [Next in Thread]