Hay algunos comandos de terminal que son competentes para destruir grandes cantidades de datos de manera muy eficiente. Como: sudo rm -rf /*
o rm -rf /*
. Quiero configurar una advertencia que aparecerá cada vez que se ingresen estos comandos destructivos. Algo como esto:
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]
¿Cómo escribir un guión que haga esto?
Respuesta1
rm
tiene la opción -i
que pregunta cada vez antes de eliminar un archivo. Creo que eso no es lo que quieres porque pregunta.CADAtiempo antes de eliminar un archivo que a menudo incluiría cientos de reconocimientos si desea eliminar de forma recursiva, por ejemplo, un repositorio de git.
Lo que probablemente quieras es un script simple que "reemplace" rm
como este
#!/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
Nota: debe utilizar el script como "rm FILE ARGUMENTS".
Este script busca si elige más de un archivo (directorio) con shell global pero elimina el archivo si es solo uno.