Hace algún tiempo borré erróneamente mi carpeta de inicio porque ejecuté una rm -rf *en la terminal incorrecta, ¡cuyo directorio de trabajo era la carpeta de inicio!
Desearía tener un alias para el rmcomando, pero no fue el caso.
Ahora, estoy planeando hacer un script como un alias para rm.
¿Tiene alguna mejor práctica que sugerir?
Gracias.

rmsea un comando peligroso que requiera un alias por seguridad. Al usar las opcionesryf, le está diciendo al shell que sé que esto es peligroso, y lo he pensado cuidadosamente, y es realmente lo que quiero hacer . Si no usa esas opciones, no puede eliminar toda su carpeta de inicio con ella.rm, se acostumbrará a ese alias. Entonces, un día, estarás en un sistema donde el alias no existe, y harás lo incorrecto cuando menos lo esperes. Y probablemente no será tu sistema.rmarm -i.Respuestas:
Si desea un personalizado
rm, no lo llamermsino un nombre suyomyrm,deleteo lo que sea.El
rm='rm -i'alias es un horror porque después de un tiempo utilizándolo, esperarármque le pregunte por defecto antes de eliminar archivos. Por supuesto, un día lo ejecutará con una cuenta que no tiene ese alias establecido y antes de que entienda lo que está sucediendo, es demasiado tarde.En cualquier caso, una buena manera de estar preparado para la pérdida o corrupción de archivos es hacer 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.
fuente
Si desea guardar alias, pero no quiere arriesgarse a acostumbrarse a los comandos que funcionan de manera diferente en su sistema que en otros, puede deshabilitar de
rmesta maneraLuego puede crear su propio alias seguro, p. Ej.
o usar
trashen su lugar.fuente
removecomoecho "rm is disabled, use trash or /bin/rm instead." -irv. Y, como cuestión de sentido común, ¿no le gustaría que el mensaje sermrefiera a suremovecomando de seguridad ?Podrías intentar usar en su
trashlugar. Solo recuerda vaciarlo de vez en cuando ...fuente
Sin tener que cambiar el perfil de todos, lo que puede hacer es colocar el archivo llamado -i en el directorio.
fuente
.* *, en lugar de* .*(lo que creo que es más común) o* . *(lo que dijiste). ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... para que esta técnica sea verdaderamente efectiva a nivel mundial, debe hacerlo en cada directorio donde tenga permiso de escritura . Pero estoy de acuerdo, es un buen truco.Yo uso el siguiente script.
Si accidentalmente borra un archivo, recupérelo del
$HOME/tmp.El script mueve los archivos eliminados a un
tmpdirectorio y los elimina la próxima vez que se ejecute si el tiempo de acceso es 7 días después (limpieza semiautomática del$HOME/tmpdirectorio).fuente
En tu perfil,
fuente
rm -Ida lo mejor de ambos mundos, @jlliagre.Un guión llamado
d, con contenidomv $* /tmp.editar: esta es una mala idea; vea abajo. Actualmente tengo
alias d='mv -t /tmp'en mi.profilelugar.fuente
d "foo bar"eliminará los archivosfooybar). Probablemente sea más seguro#!/bin/bash TRASH="$( mktemp -d -t trashed.XXX )"; echo "Moving to trash $TRASH"; mv -v -- "$@" "$TRASH"(mktempy lamvsintaxis depende de su sistema, este funciona para Linux).dcomando aalias d='mv -t /tmp'en mi.profile; Creo que esa es la solución simple que estaba buscando.Este código bash agrega la función
rma su~/.bash_profilearchivo de configuración. Después de ejecutar esto, si escriberm file, moverá ese archivo a/tmpfuente
rma su~/.bash_profilearchivo de configuración. Después de ejecutar este archivo, si escriberm file, moverá ese archivo a/tmp.