Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. 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 was working on a shell script and I accidentally created a file with the variable as its name. Now I have $file in my ls output, and cannot remove it. What can I do?

share|improve this question
up vote 12 down vote accepted

You can escape the $ with \:

rm \$file
share|improve this answer
Maybe add a comment about escaping special characters? – Keith Jun 2 '11 at 3:34
It wouldn't hurt to use the -i switch (interactive, so you are prompted before the final removal) in this case... – jasonwryan Jun 2 '11 at 3:40

Basically, if you want to do things literal with these weird characters, you need to escape it. In a shell there are several ways to do that. The first one is to prepend a '\' to every character you want to escape. So you can do rm \$file. Another way is to quote them with single quotes, for example, rm '$file' or rm '$'file. Some people also consider double quotes as a mean to "escape", but it only escapes white spaces. For example if you have a file named a file, you can do

rm a\ file


rm 'a file'


rm "a file"
share|improve this answer

You can also do

rm '$file'

Stuff in single quotes is taken as literal always,so globs and variables don't get expanded.

share|improve this answer

If you ever accidentally create a file named -rf, you can use rm -- -rf to delete it.

share|improve this answer
This seems scary to try to test. :-) – Peter Grill Jun 2 '11 at 9:49
@Peter Grill: This is exactly why the -- option was created; to remove files that would otherwise be taken as options. Alternatively, you could test it with a brand-new directory named '-rf': rm -- -rf should give you an error about being a directory. – Kevin M Jun 2 '11 at 15:59
Hmm... what about files named --...? Ah, no problem: rm -- -- – Volker Siegel Oct 9 '14 at 3:41

Any graphical file manager should be able to handle this through the context menu, because it doesn't try to interpret anything.

share|improve this answer
Or, equivalently, you could hire a sysadmin to do it, right? ;) – Wildcard Apr 4 at 18:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.