更改名称中带有空格的目录的 rm -r 自动完成行为

更改名称中带有空格的目录的 rm -r 自动完成行为

我正在运行 Ubuntu 12.04。

如果我尝试自动完成删除名称中带有空格的目录,它不起作用。

假设我的目录名为“some spacey directory”。如果我输入rm -r some并按下 Tab 键,则不会再自动完成。因此,我再输入一些内容,例如rm -r some\ s。现在,如果我按下 Tab 键,它会自动完成,但会删除\字符,从而得到rm -r some spacey directory。但是,这不会删除 some spacey directory。所以这很不方便。

但这确实是一场噩梦:如果您有两个目录,比如“基本”和“具有附加功能的基本”,然后执行,rm -r basic with an added feature您最终会删除基本。

我的问题是:自动完成功能有这种行为的原因是什么?有什么办法可以摆脱它吗?在永久删除命令的上下文中,这似乎是危险的行为。

答案1

对于名称中带有空格的目录和文件,制表符补全功能在此起作用。

如您所见,Linux 不喜欢文件名中有空格。您必须使用 \ 或引号对其进行转义。

rm -rf "directory with spaces"

rm在命令行上输入错误会很麻烦,而且拼写错误会给你带来麻烦。我建议你使用选项-i进行确认。

rm -i file to remove

会给你确认,你想删除文件吗?然后你可以中止。我在 ~/.bashrc 中设置了 alisis

alias rm="rm -i"

祝你好运

相关内容