См. Мой ответ здесь . Короче говоря, если на компьютере уже нет операционной системы, просто отключите устаревший режим и примените его, иначе проверьте, установлена ли текущая операционная система в режиме uefi или в устаревшем режиме. В первом случае вы получили зеленый свет, во втором, извините, вам также придется установить debian в устаревшем режиме (вы можете стереть диск и установить debian в режиме uefi, если хотите). Обратите внимание, что в руководстве по установке указано, что в зависимости от фазы луны все может пойти не так. :-я. Также рекомендуется установить uefi, он предлагает множество преимуществ и новых функций. Я думаю, что проблема, о которой я упоминал выше, возникает очень редко, судя по отсутствию результатов Google по конкретной проблеме. Подробности см. В руководстве.
Делайте частые резервные копии, используйте снимки (а-ля машина времени), если ваша файловая система - ZFS
или btrfs
, тренируйте пальцы, чтобы использовать правильные команды, но я бы посоветовал избегать изменения поведения и семантики rm
.
Это рано или поздно приведет к обратному результату, как и несносный alias rm="rm -i"
...
В вашем случае я бы посоветовал при запуске интерактивных оболочек отключать rm
и заменять его пользовательским rm
, который будет выполнять свою первоначальную работу. Например. добавьте эти строки в ваш .bashrc
rm() {
echo "rm disabled, use myRM instead"
}
alias myRM="command rm"
Раздражение, вызванное новой функцией rm
, будет более эффективно помогать вам избавиться от опечаток, и вы, вероятно, быстро перестанете набирать rm
.
Хотя этот совет выглядит контрпродуктивным, причина, по которой я предлагаю делать это таким образом, заключается в том, что вы не рискуете привыкнуть к нестандартному поведению для такой опасной команды Unix. Рано или поздно, вы войдете под учетной записью и/или в другую систему без установленного хака и удалите файлы без подсказки системы безопасности, чтобы сохранить их.
С другой стороны, если вы привыкнете набирать myRM
для удаления файлов, делать это на чужих системах будет безвредно.
Наконец, если вы все же захотите перегрузить команду rm
, вот лаконичный способ сделать это:
rm() {
echo command rm $([ ${#} -gt 1 ] && echo \-i) "$@"
}
определите функцию rm
в вашем bash и проверьте количество аргументов. Если есть только 1 аргумент, то выполните команду rm
для вызова исходной команды. В противном случае выведите предупреждение.
Что-то вроде:
function rm()
{
if (( $# > 1 )); then
read -r -p "sure? [y/n] " response
case $response in
[yY])
command rm "$@"
;;
*)
echo "ignored"
;;
esac
else
command rm "$@"
fi
}
Одна вещь, которую нужно улучшить в моей функции, это сначала просканировать все параметры и если параметр начинается с -
, то рассматривать параметр как опцию. Таким образом, функция rm
обрабатывает ввод как rm -f 1.txt
.