RstudioのLinuxクラスターでSSHを介した対話型セッションの場合、コマンドがRstudioコンソールで強調表示されているときに、"run in terminal"のキーボードショートカットを誤って実行するのは非常に簡単です。これにより、次のような動作が発生します
\> library
または
Var1>Var2
ターミナルで実行されます。ターミナルがbashプロンプトでログインしている場合、リモート作業ディレクトリにlibrary
またはVar2
ファイルが作成されます。
最悪のシナリオでは、これにより、リモートの作業ディレクトリ内のファイルが上書きされます。
これらのセッションで「>」を無効にしたいのですが、その方法がわかりません。
>
はコマンドではなく、ストリームをリダイレクトするための 演算子 であるため、エイリアスを作成することはできません。ただし、noclobber
オプションを使用してファイルの上書きを無効にすることができます。 set -C
またはset -o noclobber
を実行するだけです(またはそれらを~/.bashrc
に追加します)
noclobber
オプションは、出力リダイレクトで既存のファイルを上書きしないようにするために使用できます(Set
Builtin を参照)。 「> |」リダイレクト演算子を使用して、noclobberをオーバーライドできます。
ファイルが存在しなかった場合でも作成されますが、少なくとも最悪のシナリオを回避できます。ただし、コードに>|
が含まれていると、問題が発生する可能性があります。
リダイレクトを完全に無効にする場合は、 制限付きシェル を使用する必要がありますが、環境が非常に制限され、特に/bin/ls
のようなスラッシュを使用してコマンドを実行することはできません。またはディレクトリを変更します
最善の解決策は、RStudioの「ターミナルで実行」ショートカットを変更することです Webサイトで明確に説明されています