[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Simple question regarding touch and mv

Konstantin Svist wrote:
Daniel B. Thurman wrote:
I wonder why this fails:

#  touch '-foo'
touch: invalid option -- 'o'

# touch '\-foo'     (works)
# mv '-foo' foo
mv: invalid option -- 'o'
Try `mv --help' for more information.

What confuses me is, if foo was surrounded by
double-quotes, then expansion may be a problem
but with single-quotes, no expansion is performed,
so why does both commands fail?  Is this some
quirkiness in the way command arguments are
being handled?

Just wondered,

The error, "touch: invalid option -- 'o' " comes from touch, not from shell.
Shell does indeed ignore the '-foo' option and passes it in as a string
to touch, after removing the single quotes. So touch interprets it just
as if it was called this way: touch -foo

So, there is no way to force the shell to pass argument '-foo' to
touch to get the desired result: touch '-foo'?

I tried: touch "'-foo'", but it created file: '-foo'

I guess I will just have to escape the beginning `-' characters
in my scripts.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]