@@ -360,21 +360,24 @@ Directory and files operations
360360
361361.. function :: move(src, dst, copy_function=copy2)
362362
363- Recursively move a file or directory (*src *) to another location (* dst *)
364- and return the destination.
363+ Recursively move a file or directory (*src *) to another location and return
364+ the destination.
365365
366- If the destination is an existing directory, then *src * is moved inside that
367- directory. If the destination already exists but is not a directory, it may
368- be overwritten depending on :func: `os.rename ` semantics.
366+ If *dst * is an existing directory or a symlink to a directory, then *src *
367+ is moved inside that directory. The destination path in that directory must
368+ not already exist.
369+
370+ If *dst * already exists but is not a directory, it may be overwritten
371+ depending on :func: `os.rename ` semantics.
369372
370373 If the destination is on the current filesystem, then :func: `os.rename ` is
371- used. Otherwise, *src * is copied to * dst * using *copy_function * and then
372- removed. In case of symlinks, a new symlink pointing to the target of * src *
373- will be created in or as * dst * and *src * will be removed.
374+ used. Otherwise, *src * is copied to the destination using *copy_function *
375+ and then removed. In case of symlinks, a new symlink pointing to the target
376+ of * src * will be created as the destination and *src * will be removed.
374377
375- If *copy_function * is given, it must be a callable that takes two arguments
376- *src * and * dst * , and will be used to copy *src * to * dst * if
377- :func: `os.rename ` cannot be used. If the source is a directory,
378+ If *copy_function * is given, it must be a callable that takes two arguments,
379+ *src * and the destination , and will be used to copy *src * to the destination
380+ if :func: `os.rename ` cannot be used. If the source is a directory,
378381 :func: `copytree ` is called, passing it the *copy_function *. The
379382 default *copy_function * is :func: `copy2 `. Using :func: `~shutil.copy ` as the
380383 *copy_function * allows the move to succeed when it is not possible to also
0 commit comments