为什么 `rm` 似乎忽略了转义?

1 linux arch-linux rm

我正在尝试rm目录及其内容,但是无论出于何种原因rm都忽略了转义字符。

在这个例子中,我试图Team Fortress 2~/.local/share/Steam/SteamApps/common以下位置删除文件夹:

[redacted@host common]$ rm -r Team\ Fortress\ 2/
/usr/bin/rm: cannot remove ‘Team’: No such file or directory
/usr/bin/rm: cannot remove ‘Fortress’: No such file or directory
/usr/bin/rm: cannot remove ‘2/’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我还尝试将目录名称用引号括起来:

[redacted@host common]$ rm -r 'Team\ Fortress\ 2/'
/usr/bin/rm: cannot remove ‘Team\\’: No such file or directory
/usr/bin/rm: cannot remove ‘Fortress\\’: No such file or directory
/usr/bin/rm: cannot remove ‘2/’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是来自的输出rm --version

rm (GNU coreutils) 8.21
...
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

Den*_*nis 11

我的第一个猜测是rm是一个定义不明确的函数或脚本,例如,类似

rm()
{
    /usr/bin/rm -i $1
}
Run Code Online (Sandbox Code Playgroud)

要找出答案,请执行以下命令:

type rm
Run Code Online (Sandbox Code Playgroud)

如果我错了,它会说:

rm is /usr/bin/rm
Run Code Online (Sandbox Code Playgroud)

如果我是对的,它会准确地告诉您rm是如何重新定义的。