我正在编写 shell 脚本,并且意外地创建了一个以变量作为名称的文件。现在我已经$file
在我的ls
输出中,并且无法删除它。我能做些什么?
答案1
您可以使用以下$
命令逃避\
:
rm \$file
答案2
你也可以做
rm '$file'
单引号中的内容始终被视为文字,因此全局变量和变量不会被扩展。
答案3
基本上,如果你想用这些奇怪的字符做字面上的事情,你需要转义它。在 shell 中,有多种方法可以做到这一点。第一个是在每个要转义的字符前面添加一个“\”。所以你可以这样做rm \$file
。另一种方法是用单引号引用它们,例如,rm '$file'
或rm '$'file
。有些人也认为双引号是一种“转义”的手段,但它只能转义空格。例如,如果你有一个名为 的文件a file
,你可以这样做
rm a\ file
或者
rm 'a file'
或者
rm "a file"
答案4
任何图形文件管理器都应该能够通过上下文菜单处理此问题,因为它不会尝试解释任何内容。