Deseo asegurarme de usar accidentalmente
rm [argument_i] * [argument_j]
es decir, siempre debe negarse a ejecutar el comando, cuando el carácter de asterisco está separado por espacios en blanco en ambos lados, sin importar qué más haya antes o después del asterisco.
¿Qué comando debo agregar a mi .bashrc
para habilitar tal verificación?
Gracias por cualquier pista.
Respuestas:
Creo que es mejor que defina un alias para rm, por lo que cada vez que ejecute rm, no será rm en sí mismo sino su alias.
En este alias puedes analizar todo.
Y este script puede tener todos los parámetros de análisis que desee.
Este alias debe colocarse en .bashrc / .bash_profile, o incluso en / etc / profile si desea que se aplique a todos los usuarios.
Editar Siguiendo los comentarios a continuación, agregué un contenedor que deshabilita * interpretado como una lista de todos los archivos y se convierte en una cadena.
El script podría comenzar así:
Prueba:
fuente
rm
sea una buena idea. Alguna vez te atraparán sin el alias, pero seguirás confiando en su protección, y todo el infierno se desatará. Es mejor aprender a pensar "rm
es peligroso; déjame revisar mi línea de comando" que confiar en una muleta.rm
pero puede ser un trabajo duro.*
el shell lo expande antes de enviarlo como parámetro a su script o binario. Por lo tanto, no encontrará un*
en la lista de argumentos de su script, sino más bien una lista de todos los archivos en el directorio actual.Como sugerí en una pregunta diferente, usar una trampa DEBUG que verifique BASH_COMMAND hará el truco:
fuente