.. function:: move(src, dst)
- Recursively move a file or directory to another location.
+ Recursively move a file or directory (*src*) to another location (*dst*).
- Uses :func:`os.rename` to perform the move. If it fails, for reasons such as
- when *src* and *dst* are on different filesystems or in case of windows where
- rename is not supported when *dst* exists, fallback to copying *src* (with
- :func:`copy2`) to the *dst* and then remove *src*.
+ If the destination is a directory or a symlink to a directory, then *src* is
+ moved inside that directory.
+
+ The destination directory must not already exist. If the destination already
+ exists but is not a directory, it may be overwritten depending on
+ :func:`os.rename` semantics.
+
+ If the destination is on the current filesystem, then :func:`os.rename` is
+ used. Otherwise, *src* is copied (using :func:`copy2`) to *dst* and then
+ removed.
.. versionadded:: 2.3
.. exception:: Error
- This exception collects exceptions that raised during a multi-file operation. For
- :func:`copytree`, the exception argument is a list of 3-tuples (*srcname*,
- *dstname*, *exception*).
+ This exception collects exceptions that are raised during a multi-file
+ operation. For :func:`copytree`, the exception argument is a list of 3-tuples
+ (*srcname*, *dstname*, *exception*).
.. versionadded:: 2.3
+
.. _shutil-example:
copytree example
.. function:: get_archive_formats()
- Returns a list of supported formats for archiving.
+ Return a list of supported formats for archiving.
Each element of the returned sequence is a tuple ``(name, description)``
By default :mod:`shutil` provides these formats:
.. function:: register_archive_format(name, function, [extra_args, [description]])
- Registers an archiver for the format *name*. *function* is a callable that
+ Register an archiver for the format *name*. *function* is a callable that
will be used to invoke the archiver.
If given, *extra_args* is a sequence of ``(name, value)`` that will be