¿Cómo elimino cientos de impresoras de red agregadas automáticamente?

¿Cómo elimino cientos de impresoras de red agregadas automáticamente?

Es muy difícil para mí realizar la impresión, porque el diálogo de la impresora está lleno de cientos de impresoras agregadas automáticamente, por lo que no puedo encontrar la que quiero usar, vea la captura de pantalla a continuación.

Imagen del diálogo de la impresora que muestra una barra de desplazamiento muy larga.

Las impresoras provienen de mi red de trabajo, donde aparentemente muchas personas (incluidos estudiantes, supongo) están "compartiendo" sus impresoras domésticas, que mi computadora portátil recoge automáticamente. (casualmente, a veces desactivo el demonio avahi en el trabajo, simplemente porque está usando una gran cantidad de CPU).

Cuando voy a http://localhost:631/printers/, dice que hay 131 impresoras, y todas son de Marca y Modelo 'Impresora local sin formato'. Con dos excepciones: 1 es una impresora de red en el trabajo que configuré manualmente. Otra es una impresora de red en casa de mis padres, que también se agregó automáticamente y en la que estoy en la misma red en este momento. Pero el resto son sólo basura que realmente me gustaría evitar. Se agradecerían consejos sobre cómo hacerlo.

Sin embargo, no regresaré a mi lugar de trabajo por un tiempo, así que por ahora, solo me gustaría que se eliminen estas impresoras (que serían las impresoras 129/130 agregadas automáticamente). ¿Hay una manera de hacer eso? Supongo que podría hacerlo haciendo clic en la interfaz web de cups, pero para 129 impresoras, eso es demasiado. Así que estoy buscando un comando único o consejos sobre cómo lograrlo con una especie de script.

Respuesta1

Usando este comando: lpstat -apodemos ver las impresoras instaladas e identificar el nombre de la impresora que deseamos conservar, greptambién podemos usar el comando para filtrar los resultados de esta manera: lpstat -a | grep <probable_name_of_printer>.

Entonces este pequeño guión puede ayudar:

  1. Ejecute este comando para verificar que la impresora deseada no esté en la lista:

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • Esto no debería devolver nada ya que hace lo siguiente:

      • lpstat -a: lista de impresoras instaladas
      • cut -d" " -f1: devuelve solo los nombres de las impresoras
      • sed -E '/<NAME_OF_PRINTER>/d': elimina el nombre de la impresora para mantenerla en la salida de los comandos anteriores
      • grep <NAME_OF_PRINTER>: asegúrese de que la impresora deseada no esté en la lista
  2. Si lo anterior es correcto; luego ejecute este comando para eliminar todas las demás impresoras que no necesite:

    sudo bash -c 'for i in $(lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d'); do lpadmin -x "$i"; done'
    

información relacionada