Есть ли способ настроить предупреждение перед выполнением некоторых команд в терминале?

Есть ли способ настроить предупреждение перед выполнением некоторых команд в терминале?

Есть некоторые команды терминала, которые очень эффективно уничтожают большие массивы данных. Например: sudo rm -rf /*или rm -rf /*. Я хочу настроить предупреждение, которое будет появляться всякий раз, когда вводятся эти разрушительные команды. Что-то вроде этого:

sudo rm -rf /*
Are you sure you want to remove all files from your root 
directory recursively? This operation will remove all files from the root 
directory, any mounted filesystems attached to it and essential operating 
system files. 
Are you sure you want to proceed? [Y/n]

rm -rf /*
Are you sure you want to remove all files owned by $USER 
recursively? This operation will remove all your files on the root 
filesystem and any filesystems mounted to it.
Are you sure you want to proceed? [Y/n]

Как написать скрипт, который это сделает?

решение1

rmесть опция -i, которая спрашивает каждый раз перед удалением файла. Я думаю, это не то, что вы хотите, потому что он спрашиваетКАЖДЫЙвремя перед удалением файла, которое часто приводит к сотням подтверждений, если вы хотите рекурсивно удалить, например, репозиторий git.

Вероятно, вам нужен простой скрипт, который «заменит» rmвот такой

#!/bin/bash
if [ "$(ls -l $1 | wc -l)" = "1" ]; then
  rm $1 $@
else
  echo "You are going to delete these ($(ls -l $1 | wc -l)) files/directories via shell globbing" 
  ls $1
  read -p "Do you really want to delete these files? [y/n]" yn
  if [ $yn = [Yy] ]; then
    rm $1 $@
  fi
fi

Примечание: вам необходимо использовать скрипт типа «rm FILE ARGUMENTS».

Этот скрипт проверяет, выбрано ли более одного файла (каталога) с помощью подстановки оболочки, но удаляет файл, если он только один.

Связанный контент