3

Для интерактивного сеанса через SSH в кластере Linux в Rstudio очень легко случайно выполнить сочетание клавиш для "запуска в терминале", когда команды выделены в консоли Rstudio. Это приводит к поведению, такому как

> библиотека

или же

Var1> Переменная2

выполняется в терминале, который создает library или файл Var2 в удаленном рабочем каталоге, если терминал вошел в систему в командной строке bash.

В худшем случае это приведет к перезаписи файлов в удаленном рабочем каталоге.

Я хотел бы отключить «>» в этих сеансах, но я не уверен, как это сделать.

1 ответ1

20

> это не команда, а оператор, так что вы не можете назвать ее псевдонимом. Но вы можете отключить перезапись файлов с помощью опции noclobber . Просто запустите set -C или set -o noclobber (или добавьте их в ~/.bashrc)

Опция noclobber доступна, чтобы избежать перезаписи существующих файлов с перенаправлением вывода (см. Построение Set). '> |' Оператор перенаправления может использоваться для переопределения noclobber.

https://www.gnu.org/software/bash/manual/bashref.html#The-Set-Builtin

Если файл не существует, он все равно будет создан, но, по крайней мере, вы можете избежать худшего сценария

Если вы хотите полностью отключить перенаправление, вы должны использовать ограниченную оболочку, но это приведет к крайне ограниченной среде, особенно вы не можете запускать команды с косой чертой, такие как /bin/ls или изменять каталог

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .