Siéntete libre de divulgar nuestro sitio y códigos en tus redes, apóyanos para aumentar nuestra comunidad.
Solución:
Desde la línea de comando:
killall file-roller
Puede hacer alt+f4 pero debe hacerlo para cada administrador de archivos que se abrió.
Otro enfoque sería utilizar el wmctrl
utilidad (control del administrador de ventanas). Esto se puede usar para decirle al administrador de ventanas que simule que usted hizo clic en el botón de cerrar. Esto evita la naturaleza potencialmente pesada de killall
; por ejemplo, algunos programas con un documento no guardado se cerrarán inmediatamente cuando se eliminen (incluso suavemente), mientras que al hacer clic en el botón de cerrar aparece un mensaje “¿Desea guardar?” inmediato.
El comando básico es wmctrl -c WINDOWTITLE
por lo que en este caso wmctrl -c "Archive Manager"
(asumiendo que no tiene un archivo abierto: eso cambia el título). Desafortunadamente, solo cierra uno a la vez, por lo que debemos hacer más para cerrarlos todos.
wmctrl
devuelve el éxito si encuentra una coincidencia, por lo que podemos repetir hasta que falle:
while wmctrl -c "Archive Manager"; do sleep 0.1; done
Esto siempre elige la primera ventana que encuentra, por lo que debemos dormir un poco para evitar enviar continuamente una secuencia de comandos de cierre a la primera ventana que ya está ocupada cerrándose, lo que puede causar un error que detiene el ciclo.
Esto es simple y generalmente funciona, pero dormir una cantidad determinada de tiempo y esperar que se cierre una ventana antes de volver a intentarlo es una forma complicada y lenta de evitar el error. Lo que realmente queremos hacer es enviar inmediatamente un mensaje de cierre a cada ventana coincidente.
Podemos encontrar todas las ventanas abiertas con wmctrl -l
. Esto enumera una identificación de ventana numérica que podemos usar para identificar cada ventana individualmente, incluso si todas tienen el mismo título. Luego, debemos filtrar solo las ventanas coincidentes (la grep
comando), extraiga solo el id de la ventana (el cut
comando) y llamar wmctrl -i -c
para cada uno. los -i
es necesario para que coincida con la identificación de la ventana en lugar del título de la ventana.
for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
wmctrl -i -c $w
done
Un poco complicado para simplemente escribir cada vez que un gato pisa su teclado, pero espero que sea una técnica útil para mantener en su caja de herramientas de secuencias de comandos.
Si te ha resultado de provecho este artículo, sería de mucha ayuda si lo compartieras con otros seniors de esta forma nos ayudas a dar difusión a nuestra información.