Функция, данная в ответе @Tim, будет работать над любым системным ударом выполнения. Однако GNU rm
уже имеет опцию для того, в чем Вы нуждаетесь (от man rm
):
-I prompt once before removing more than three
files, or when removing recursively. Less
intrusive than -i, while still giving protec‐
tion against most mistakes
Так, если у Вас есть GNU rm
(который Вы должны при выполнении Linux), все, в чем Вы нуждаетесь, должна добавить эта строка к Вашему /.bashrc
:
alias rm='rm -I'
Это запросит прежде, чем удалить больше чем 3 файла, но это не попросит подтверждение для каждого файла, если Вы подтвердите действие, то все файлы будут удалены.
Это работает на меня, добавьте эти строки к Вашему ~/.bashrc
:
rm() {
if [ "$#" -ge 3 ]; then
command rm -i "$@"
else
command rm "$@"
fi
}
Это сделает rm
функция, которая будет вызвана вместо /bin/rm
каждый раз Вы выполняетесь rm
.
"$#"
расширяется до количества переданных аргументов.
[$#
вместо [ $#
(пропускающий пространство). Также этот код разработан для использования в сценарии или в функции.
– Gilles 'SO- stop being evil'
24.09.2013, 00:12
.bashrc
, необходимо превратить его в функцию. Попытайтесь перенести этот точный код в rm () { ... }
.
– Joseph R.
24.09.2013, 00:15