GNU bug report logs -
#47151
cp --recursive funky behaviour
Previous Next
Reported by: Tomas <correo <at> tomaszubiri.com>
Date: Mon, 15 Mar 2021 00:59:01 UTC
Severity: normal
Tags: wontfix
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 2/21/22 10:49, Tomas wrote:
> I found this, I am not sure whether it's the right specs.
>
> https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/
Yes, or more precisely for 'cp':
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cp.html
> "2) f) The files in the directory source_file shall be copied to the directory dest_file, taking the four steps (1 to 4)
> listed here with the files as source_files."
>
> Is this the relevant part? It seems to me that this would support copying src/a and src/b (the files in the directory source_file) to dest/a and dest/b (copied to the directory dest_file) rather than to dest/src/a and dest/src/b (which would be copying the directory, not the files in the directory). But maybe I'm missing a part of the spec or am interpreting it differently.
Yes, I think the part you're missing is below. Your first "cp -r src
dest" uses the 3rd paragraph quoted below; your second "cp -r src dst"
uses the 2nd paragraph.
=====
The third synopsis form is denoted by two or more operands where the -R
option is specified. The cp utility shall copy each file in the file
hierarchy rooted in each source_file to a destination path named as follows:
If target exists and names an existing directory, the name of the
corresponding destination path for each file in the file hierarchy shall
be the concatenation of target, a single <slash> character if target did
not end in a <slash>, and the pathname of the file relative to the
directory containing source_file.
If target does not exist and two operands are specified, the name
of the corresponding destination path for source_file shall be target;
the name of the corresponding destination path for all other files in
the file hierarchy shall be the concatenation of target, a <slash>
character, and the pathname of the file relative to source_file.
=====
This bug report was last modified 3 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.