我正在运行 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"
祝你好运