Verificación de doble rm en zsh


15

Cuando hago un rm * en zsh, obtengo algo como esto:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

Primero, zsh me pregunta si estoy seguro de querer eliminar todo, y luego rm solicita cada archivo específico.

¿Cómo puedo tener la verificación zsh?


3
Uso rm -f ./*. Por defecto, rmno pide nada a menos que no tenga permiso de escritura para el archivo. Tal vez usted tiene unalias rm='rm -i'
Stéphane Chazelas

Oh, eso debe ser: estoy ejecutando las eliminaciones desde un shell Vagrant, y los archivos están alojados en el sistema de archivos de la computadora portátil. Gracias
ardochhigh

2
Solo una nota, zsh todavía muestra "rm -rf *", esto se puede deshabilitar consetopt rmstarsilent
Matt

Respuestas:


29

El mensaje "zsh: asegúrese de que desea eliminar todos los archivos" es una función zsh, activada específicamente al invocar un comando llamado rmcon un argumento que es *o something/*antes de la expansión global. Puedes desactivar esto con setopt rm_star_silent.

El mensaje "rm: eliminar el archivo normal" proviene del rmcomando en sí. No se mostrará de forma predeterminada, solo aparece cuando rmse invoca con la opción -i. Si no desea este mensaje, no pase esa opción. Incluso sin -i, rmsolicita confirmación (con un mensaje diferente) si intenta eliminar un archivo de solo lectura; Puede eliminar esta confirmación pasando la opción -f.

Dado que no pasó -ila línea de comando, rmes presumiblemente un alias para rm -i(también podría ser una función, un comando contenedor no estándar o un alias diferente, pero el alias rm -ies, con mucho, el más plausible). Algunas configuraciones predeterminadas incluyen alias rm='rm -i'en sus archivos de inicialización de shell; esto podría ser algo que su distribución o su administrador del sistema configuraron, o algo que recogió de algún lugar y agregó a su archivo de configuración y luego olvidó. Compruebe su ~/.zshrcpara una definición de alias para rm. Si encuentra uno, quítelo. Si no encuentra uno, agregue un comando para eliminar el alias:

unalias rm

6

El comando correcto para deshabilitar la doble verificación parece ser setopt rm_star_silent. Para habilitar la doble verificación hacer setopt no_rm_star_silent.

Para obtener información más detallada, consulte la página de manual de zshoptions man zshoptionso http://linux.die.net/man/1/zshoptions


ounsetopt rm_star_silent
evandrix

1

Si está utilizando oh-my-zsh, el complemento common-aliases incluye el alias rm -i.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
jayhendren

@jayhendren - no es un enlace a la documentación, es un enlace a algo para instalar para solucionar el problema ...
Wouter Verhelst
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.