Simple question regarding touch and mv

Daniel B. Thurman dant at cdkkt.com
Sat Dec 20 19:21:56 UTC 2008


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,
>> Dan
>>
>>     
>
> 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.

Thanks!
Dan




More information about the fedora-list mailing list