Mejores prácticas para asignar un alias al comando rm y hacerlo más seguro

Mejores prácticas para asignar un alias al comando rm y hacerlo más seguro

Hace algún tiempo eliminé por error mi carpeta de inicio porque ejecuté un rm -rf *terminal equivocado, ¡cuyo directorio de trabajo era la carpeta de inicio!

Ojalá tuviera un alias para el rmcomando, pero no fue el caso.

Ahora, estoy planeando crear un script como alias para rm.

¿Tiene alguna mejor práctica que sugerir?

Gracias.

Respuesta1

Si quieres uno personalizado rm, no lo llames rmsino un nombre tuyo, myrmo deletelo que sea.

El rm='rm -i'alias es un horror porque después de un tiempo de usarlo, esperará rmque se le avise de forma predeterminada antes de eliminar archivos. Por supuesto, un día lo ejecutarás con una cuenta que no tiene ese alias configurado y antes de que entiendas lo que está pasando, ya será demasiado tarde.

En cualquier caso, una buena forma de estar preparado para la pérdida o corrupción de archivos es realizar copias de seguridad.

Una alternativa rápida que lo protegerá contra la eliminación o sobrescritura accidental de archivos es utilizar un sistema de archivos que admita instantáneas ilimitadas como ZFS. Si las instantáneas frecuentes se realizan automáticamente, puede recuperar los archivos en el estado en que se encontraban durante la última instantánea antes del incidente.  

Respuesta2

Si desea guardar alias, pero no quiere arriesgarse a acostumbrarse a que los comandos funcionen de manera diferente en su sistema que en otros, puede desactivarlos rmde esta manera.

alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'

Luego puedes crear tu propio alias seguro, por ejemplo

alias remove='/bin/rm -irv'

o utilizar trashen su lugar.

Respuesta3

Podrías intentar usartrashen cambio. Sólo recuerda vaciarlo de vez en cuando...

Respuesta4

Utilizo el siguiente script.

#!/bin/sh

trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &

Si elimina accidentalmente un archivo, recupérelo del archivo $HOME/tmp.

El script mueve los archivos eliminados a un tmpdirectorio y los elimina la próxima vez que se ejecute el script de eliminación si el tiempo de acceso es 7 días después (limpieza semiautomática del $HOME/tmpdirectorio).

información relacionada