--- Begin Message ---
Subject: |
cp and mv with single wild card argument acts as if multiple arguments were entered. |
Date: |
Fri, 4 Jun 2010 12:13:46 -0400 |
I did a quick search of the archive, and didn't find this one, but there seems to be a potential logical failure in the cp and mv commands. It may be specific to an implementation, but I feel it is a critical issue.
I have tested this on Suse Enterprise 10.x and OpenSuse 11.x (the only implementations I currently have access to).
If you execute "cp /path/*" the command expands the wildcard, and treats the last file as the destination directory. If the last file in /path/ is not a directory the command fails, but not with the appropriate error. However, if the last file in the directory (or other wildcard expansion) is a directory, it will copy all earlier files in the expansion to that directory.
The same happens for mv. I did mv * in my home directory where the last entry was a workspace subdirectory. It moved all of my files and directories to my workspace subdirectory.
I feel this is an unacceptable outcome for a single argument that is a wildcard, since whether it works or not is based on the arbitrary presence or absence of a directory as the final element in the wildcard expansion. It would be much better to fail with an error indicating "missing destination file operand" as it does if the first argument does not contain a wildcard.
Also, if a wildcard expansion contains exactly 2 elements, the second is treated as a target whether or not it is a directory, causing a potential overlay of data.
... Darwin
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#6353: cp and mv with single wild card argument acts as if multiple arguments were entered. |
Date: |
Mon, 7 Jun 2010 16:50:18 -0600 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hi Darwin,
I am happy that you are satisfied with the responses. I am going to
close the bug ticket in the bug tracking system with this message.
Bob
--- End Message ---