web-dev-qa-db-ja.com

RstudioLinuxターミナルで ">"演算子を無効にします

RstudioのLinuxクラスターでSSHを介した対話型セッションの場合、コマンドがRstudioコンソールで強調表示されているときに、"run in terminal"のキーボードショートカットを誤って実行するのは非常に簡単です。これにより、次のような動作が発生します

\> library

または

Var1>Var2

ターミナルで実行されます。ターミナルがbashプロンプトでログインしている場合、リモート作業ディレクトリにlibraryまたはVar2ファイルが作成されます。

最悪のシナリオでは、これにより、リモートの作業ディレクトリ内のファイルが上書きされます。

これらのセッションで「>」を無効にしたいのですが、その方法がわかりません。

5
user36302

>はコマンドではなく、ストリームをリダイレクトするための 演算子 であるため、エイリアスを作成することはできません。ただし、noclobberオプションを使用してファイルの上書きを無効にすることができます。 set -Cまたはset -o noclobber を実行するだけです(またはそれらを~/.bashrcに追加します)

noclobberオプションは、出力リダイレクトで既存のファイルを上書きしないようにするために使用できます( Set Builtin を参照)。 「> |」リダイレクト演算子を使用して、noclobberをオーバーライドできます。

ファイルが存在しなかった場合でも作成されますが、少なくとも最悪のシナリオを回避できます。ただし、コードに>|が含まれていると、問題が発生する可能性があります。

リダイレクトを完全に無効にする場合は、 制限付きシェル を使用する必要がありますが、環境が非常に制限され、特に/bin/lsのようなスラッシュを使用してコマンドを実行することはできません。またはディレクトリを変更します

最善の解決策は、RStudioの「ターミナルで実行」ショートカットを変更することです Webサイトで明確に説明されています

23
phuclv