如何删除我不小心创建的名为 $file 的文件?

Squ*_*are 5 special-characters filenames rm

我正在处理一个 shell 脚本,我不小心创建了一个以变量为名称的文件。现在我$file在我的ls输出中,无法删除它。我能做什么?

mau*_*ion 14

你可以逃脱$\

rm \$file
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,使用`-i` 开关(交互式,因此在最终删除之前会提示您)不会有什么坏处... (4认同)

bol*_*van 6

你也可以这样做

rm '$file'
Run Code Online (Sandbox Code Playgroud)

单引号中的内容始终被视为文字,因此不会扩展全局变量和变量。


小智 6

基本上,如果你想用这些奇怪的字符做字面的事情,你需要转义它。在 shell 中,有几种方法可以做到这一点。第一个是在要转义的每个字符前添加一个 '\'。所以你可以这样做rm \$file。另一种方法是用单引号引用它们,例如,rm '$file'rm '$'file。有些人还认为双引号是“转义”的意思,但它只能转义空格。例如,如果您有一个名为 的文件a file,则可以执行

rm a\ file
Run Code Online (Sandbox Code Playgroud)

或者

rm 'a file'
Run Code Online (Sandbox Code Playgroud)

或者

rm "a file"
Run Code Online (Sandbox Code Playgroud)