≡ Menu

UNIX: Remove A File With A Name Starting With – (dash) Character

I am a new Unix shell user at my university shell server. Accidentally, I had created a file called -foo. Now, how do I remove a file with a name starting with '-' under UNIX-like or Linux operating system?

You can use standard UNIX/Linux rm command. All you have to do is instruct the rm command not to follow end of command line flags by passing double dash -- option before -foo file name.
Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Estimated completion time1m

Many user creates these kind of file accidentally with dashes. If you attempt to remove such file via rm command, UNIX and Linux will attempt to use them as command-line options and the command will display out with an error. So how do you get rid of these files and delete them on a UNIX?

Fig.01: Remove the file with ---- Dashes ----

Fig.01: Remove the file with ---- Dashes ----

rm command syntax

Use rm command to remove files or directories as follows:
rm -- -foo
rm ./-foo
rm ./-filename

Other options: Unix remove file with dash

Some more options remove the ---- Dashes ---- on a Unix-like system:

rm ./-Foo
rm "./---bar"
rm -- -F
rm -- ---footbal
## Edit file ##
vi  "./--foo"

Alternatively, you can also use UNIX / Linux inode number to delete a file with strange names.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 7 comments… add one }

  • Rich November 30, 2007, 7:03 pm

    The following will work as well.

    rm — \-foo

    Any unix utility that uses getopt will see the — as an end of options.

  • Royce December 12, 2007, 10:23 pm

    [self-promotion warning, but I do think that it’s topical …]

    I wrote an article for Sys Admin a while back about deleting files with unusual characters in their filenames on many Unix-likes.

  • Jadu January 2, 2008, 1:03 pm

    $ rm — -file

    this will also work.

  • Daevid Vincent April 17, 2009, 6:14 pm

    I had a directory named “–help” on accident.

    # rm — “–help”
    rm: cannot remove `–help’: Is a directory

    so you have to do it this way:

    # rm -rf — “–help”

  • iqbal January 5, 2012, 2:08 pm

    thanks man it help

  • irem February 10, 2012, 4:16 am

    my 4050n nerowtk printer doesn’t work with large images and certain pdf files in linux.. windows 7 it works flawlessly. I was impressed with Ubuntu’s printing , but it isn’t up to windows spec. It’s also a lot slower with my nerowtk printer.

  • shailesh December 15, 2014, 1:10 pm

    i typed dash on linux terminal and it changed. now their is only $ sign but not its full [user_name@user]$
    please tell me how to disable this dash

Leave a Comment