Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to rename a file with a hyphen at the beginning of its name and both this:

mv -example-file-name example-file-name

and this:

mv '-example-file-name' example-file-name

result in:

mv: invalid option -- 'e'
share|improve this question
Either use the relative path of the file (./tmp/-example), the full path (/home/a/tmp/-example) or tell mv that you're done giving options with -- and that what follows are file names. – Ярослав Рахматуллин Nov 25 '12 at 15:30
up vote 14 down vote accepted

Most GNU/Linux commands allow a -- option to indicate end of options so that subsequent - prefixed words are not treated as options.

  mv -- -example-file-name example-file-name

A small test

$ touch -- -example
$ ls -l -- *ample
-rw-r--r-- 1 rgb rgb 0 Nov 25 09:57 -example
$ mv -- -example example
share|improve this answer

RedGrittyBrick's answer is very good. Another option is:

mv ./-example-file-name example-file-name

A small test:

$ touch ./-example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./-example
$ mv ./-example example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./example
share|improve this answer

You can use this:

rename -- "s/\-//g" *

that it can rename all file :) if your file name :


after run code, your file name become:

share|improve this answer
The other approaches (the one by RedGrittyBrick, and gniourf_gniourf) are more likely to work with several other commands. – TOOGAM Dec 17 '15 at 21:57

This trick works for me in times of desperation. YMMV

rename \- '' *

You have to escape the hyphen for rename to recognize it. Why rename doesn't respect single quotes or offer an override of some kind is beyond me.

This is the only method I've seen that reliably handles a leading hyphen using rename. I agree with the other posts on using mv, but if you can't use mv for any reason, this works.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .