Cada vez que rm
multiplico varios elementos a la vez con un globo de caparazón e incluso existe la más mínima posibilidad de que el patrón se expanda más de lo que esperaba, siempre trato de recordar agregar -i
, pero (por supuesto) podría olvidar y eliminar accidentalmente algo útil. Algunas personas intentan resolver este problema con un alias, como, alias rm='rm -i'
pero odio la idea de hacer que rm sea siempre interactivo, porque entonces tendré el hábito de usarlo -f
todo el tiempo, lo que obviamente anulará todo el propósito.
Lo que me gustaría hacer es rm
usarlo solo -i
cuando uso globbing y, por -f
supuesto -i
, anularlo , por lo que aún puedo volar directorios completos con lo habitual rm -rf junk
.
Por rm *blah*
lo tanto , realmente sería, rm -i *blah*
pero rm blah
funcionaría exactamente como se escribió.
En caso de que haya una diferencia en cómo se puede lograr esto en diferentes shells, elegiré una respuesta que proporcione métodos para bash y zsh en lugar de respuestas que solo cubran una u otra.
Nota : en realidad no estoy convencido de que esto sea necesariamente una buena idea; Solo estoy preguntando si es posible. Si cree que esta es una idea estúpida, me alegraría escuchar el razonamiento detrás de su opinión, pero no publique tales comentarios en el campo de respuesta . Las respuestas reales me dicen cómo hacer esto o me explican por qué no es posible (o posiblemente ofrecen un método alternativo para obtener un resultado similar). Pero si quieres decirme por qué esto es tonto, publícalo como comentario. Votaré los comentarios bien razonados incluso si no estoy de acuerdo con la conclusión.
noglob
, p. Ej., Alias rm to noglob my-rm
, y luego hacer que my-rm sea un script que compruebe si hay un globo, lo expande y pasa -i o no. No estoy seguro, no sé zsh.
myrm
y dejar que ese script haga las cosas maravillosas que le gustan.
rm -I
es así-i
que solo se activa cuando-r
se pasan más de tres archivos o se pasa. Enbash
, use elCtrl-x *
atajo de teclado para expandir el globo e inspeccionarlo usted mismo.