@@ -360,21 +360,24 @@ Directory and files operations
360
360
361
361
.. function :: move(src, dst, copy_function=copy2)
362
362
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.
365
365
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.
369
372
370
373
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.
374
377
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,
378
381
:func: `copytree ` is called, passing it the *copy_function *. The
379
382
default *copy_function * is :func: `copy2 `. Using :func: `~shutil.copy ` as the
380
383
*copy_function * allows the move to succeed when it is not possible to also
0 commit comments