]> git.ipfire.org Git - thirdparty/coreutils.git/commit
cp,mv: add --update=none to always skip existing files
authorPádraig Brady <P@draigBrady.com>
Sat, 1 Apr 2023 15:27:52 +0000 (16:27 +0100)
committerPádraig Brady <P@draigBrady.com>
Sat, 8 Apr 2023 11:11:50 +0000 (12:11 +0100)
commitdb28af406f311ac8f78604cc5906613866aecef5
tree23c7a3ab85ed425be66ee0ddc8b298769171445d
parent5891d28edebe229f1a6057275e281b10c1f2247b
cp,mv: add --update=none to always skip existing files

Add --update=none which is equivalent to the --no-clobber behavior
from before coreutils 9.2.  I.e. existing files are unconditionally
skipped, and them not being replaced does not affect the exit status.

* src/copy.h [enum Update_type]: A new type to support parameters
to the --update command line option.
[enum Interactive]: Add I_ALWAYS_SKIP.
* src/copy.c: Treat I_ALWAYS_SKIP like I_ALWAYS_NO (-n),
except that we don't fail when skipping.
* src/system.h (emit_update_parameters_note): A new function
to output the description of the new --update parameters.
* src/cp.c (main): Parse --update arguments, ensuring that
-n takes precedence if specified.
(usage): Describe the new option.  Also allude that
-u is related in the -n description.
* src/mv.c: Accept the new --update parameters and
update usage() accordingly.
* doc/coreutils.texi (cp invocation): Describe the new --update
parameters.  Also reference --update from the --no-clobber description.
(mv invocation): Likewise.
* tests/mv/update.sh: Test the new parameters.
* NEWS: Mention the new feature.
Addresses https://bugs.gnu.org/62572
NEWS
doc/coreutils.texi
src/copy.c
src/copy.h
src/cp.c
src/mv.c
src/system.h
tests/mv/update.sh