对于 Rstudio 中 Linux 集群上通过 SSH 进行的交互式会话,很容易意外执行以下键盘快捷键:“在终端中运行”当命令在 Rstudio 控制台中突出显示时。这会导致如下行为
\> library
或者
Var1>Var2
在终端中执行,如果终端在 bash 提示符下登录,则会在远程工作目录中创建一个library
或文件。Var2
在最坏的情况下,这将导致覆盖远程工作目录中的文件。
我想在这些会话中禁用“>”,但我不确定如何做到这一点。
答案1
>
不是一个命令,而是一个操作员用于重定向流,因此您无法为其设置别名。但您可以使用该noclobber
选项禁用覆盖文件。只需运行set -C
或者set -o noclobber
(或将其添加到您的~/.bashrc
)
该
noclobber
选项可用于避免使用输出重定向覆盖现有文件(请参阅内置Set
)。'>|' 重定向运算符可用于覆盖 noclobber。
>|
如果文件不存在,它仍然会被创建,但至少你可以避免最坏的情况。但是如果你的代码中有
如果你想完全禁用重定向,你必须使用受限外壳但这会导致环境受到极大限制,最明显的是你不能运行带有斜杠的命令,例如/bin/ls
或更改目录
最好的解决方案是更改 RStudio 中的“在终端中运行”快捷方式他们的网站上解释得很清楚