On 2024-02-02 22:45, Werner LEMBERG wrote:
I looked into the autoconf info files, section 'Limitations of usual tools', and 'cp -l' wasn't explictly mentioned,
Although tt's expecting a bit much for the Autoconf manual to say every option that *isn't* portable, as there are so many (and they proliferate), the manual could be better about what *is* portable and I installed the attached.
From 163dade069be64df7cce5c6d48fdcb56188a6f60 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Sat, 3 Feb 2024 21:37:49 -0800 Subject: [PATCH] =?UTF-8?q?Document=20=E2=80=98cp=E2=80=99=20limitations?= =?UTF-8?q?=20better?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/autoconf.texi (Limitations of Usual Tools): Modernize discussion of ‘cp’. --- doc/autoconf.texi | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/doc/autoconf.texi b/doc/autoconf.texi index bcd35195..186c033b 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -19288,28 +19288,9 @@ newline encoding. @item @command{cp} @c --------------- @prindex @command{cp} -Avoid the @option{-r} option, since Posix 1003.1-2004 marks it as -obsolescent and its behavior on special files is implementation-defined. -Use @option{-R} instead. On GNU hosts the two options -are equivalent, but on Solaris hosts (for example) @code{cp -r} -reads from pipes instead of replicating them. AIX 5.3 @code{cp -R} may -corrupt its own memory with some directory hierarchies and error out or -dump core: - -@example -@kbd{mkdir -p 12345678/12345678/12345678/12345678} -@kbd{touch 12345678/12345678/x} -@kbd{cp -R 12345678 t} -cp: 0653-440 12345678/12345678/: name too long. -@end example - -Some @command{cp} implementations (e.g., BSD/OS 4.2) do not allow -trailing slashes at the end of nonexistent destination directories. To -avoid this problem, omit the trailing slashes. For example, use -@samp{cp -R source /tmp/newdir} rather than @samp{cp -R source -/tmp/newdir/} if @file{/tmp/newdir} does not exist. - -The @option{-f} option is portable nowadays. +The @option{-i}, @option{-f}, @option{-p} and @option{-R} options are +widely used. POSIX also specifies @option{-H}, @option{-L}, and +@option{-P}. Avoid other options in portable scripts. @cindex timestamp resolution Traditionally, file timestamps had 1-second resolution, and @samp{cp -- 2.40.1