GNU bug report logs -
#6353
cp and mv with single wild card argument acts as if multiple arguments were entered.
Previous Next
Full log
View this message in rfc822 format
On Friday 04 June 2010, Darwin Gregory wrote:
> 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.
cp and mv have no fault. It's the shell that expends the wildcard, so cp and
mv do not even see it; they just think they've been invoked with multiple
arguments, and behave as expected.
--
D.
This bug report was last modified 14 years and 356 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.