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?
You can escape the
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"
If you ever accidentally create a file named
-rf, you can use
rm -- -rf to delete it.
You can also do
Stuff in single quotes is taken as literal always,so globs and variables don't get expanded.
Any graphical file manager should be able to handle this through the context menu, because it doesn't try to interpret anything.