OK, how about the attached more-ambitious patch instead? I hope it helps clarify this confusing area.
From 1f5703b46cd8001706c1192a2976c7fc4d86002a Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Tue, 31 Jan 2023 10:39:43 -0800
Subject: [PATCH] cp: improve --preserve usage doc

* src/cp.c (usage): Improve description of --preserve.
---
 src/cp.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/cp.c b/src/cp.c
index 016ae8988..ede00cd12 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -183,11 +183,7 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n\
 "), stdout);
       fputs (_("\
   -p                           same as --preserve=mode,ownership,timestamps\n\
-      --preserve[=ATTR_LIST]   preserve the specified attributes (default:\n\
-                                 mode,ownership,timestamps), if possible\n\
-                                 additional attributes: context, links, xattr,\
-\n\
-                                 all\n\
+      --preserve[=ATTR_LIST]   preserve the specified attributes\n\
 "), stdout);
       fputs (_("\
       --no-preserve=ATTR_LIST  don't preserve the specified attributes\n\
@@ -227,6 +223,14 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n\
       fputs (VERSION_OPTION_DESCRIPTION, stdout);
       fputs (_("\
 \n\
+ATTR_LIST is a comma-separated list of attributes. Attributes are 'mode' for\n\
+permissions (including any ACL and xattr permissions), 'ownership' for user\n\
+and group, 'timestamps' for file timestamps, 'links' for hard links, 'context'\n\
+for security context, 'xattr' for extended attributes, and 'all' for all\n\
+attributes.\n\
+"), stdout);
+      fputs (_("\
+\n\
 By default, sparse SOURCE files are detected by a crude heuristic and the\n\
 corresponding DEST file is made sparse as well.  That is the behavior\n\
 selected by --sparse=auto.  Specify --sparse=always to create a sparse DEST\n\
-- 
2.39.1

Reply via email to