summaryrefslogtreecommitdiffstats
path: root/Lib/shutil.py
diff options
context:
space:
mode:
authorZsolt Cserna <cserna.zsolt@gmail.com>2018-10-23 10:09:50 (GMT)
committerVictor Stinner <vstinner@redhat.com>2018-10-23 10:09:50 (GMT)
commit4f399be0e70d8b5516b6213568b7665765bb3114 (patch)
tree2785a86df7076ddecc93e983ab6770fd3cd8cbbb /Lib/shutil.py
parentb79b5c09493e98374e48fa122d82dab528fc6e72 (diff)
downloadcpython-4f399be0e70d8b5516b6213568b7665765bb3114.zip
cpython-4f399be0e70d8b5516b6213568b7665765bb3114.tar.gz
cpython-4f399be0e70d8b5516b6213568b7665765bb3114.tar.bz2
bpo-34260, shutil: fix copy2 and copystat documentation (GH-8523)
Fix the documentation of copy2, as it does not copy file ownership (user and group), only mode, mtime, atime and flags. The original text was confusing to developers as it suggested that this command is the same as 'cp -p', but according to cp(1), '-p' copies file ownership as well. Clarify which metadata is copied by shutil.copystat in its docstring.
Diffstat (limited to 'Lib/shutil.py')
-rw-r--r--Lib/shutil.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/Lib/shutil.py b/Lib/shutil.py
index a4aa0df..40dd070 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -312,11 +312,15 @@ else:
pass
def copystat(src, dst, *, follow_symlinks=True):
- """Copy all stat info (mode bits, atime, mtime, flags) from src to dst.
+ """Copy file metadata
- If the optional flag `follow_symlinks` is not set, symlinks aren't followed if and
- only if both `src` and `dst` are symlinks.
+ Copy the permission bits, last access time, last modification time, and
+ flags from `src` to `dst`. On Linux, copystat() also copies the "extended
+ attributes" where possible. The file contents, owner, and group are
+ unaffected. `src` and `dst` are path names given as strings.
+ If the optional flag `follow_symlinks` is not set, symlinks aren't
+ followed if and only if both `src` and `dst` are symlinks.
"""
def _nop(*args, ns=None, follow_symlinks=None):
pass
@@ -384,8 +388,10 @@ def copy(src, dst, *, follow_symlinks=True):
return dst
def copy2(src, dst, *, follow_symlinks=True):
- """Copy data and all stat info ("cp -p src dst"). Return the file's
- destination.
+ """Copy data and metadata. Return the file's destination.
+
+ Metadata is copied with copystat(). Please see the copystat function
+ for more information.
The destination may be a directory.