Como removo centenas de impressoras de rede adicionadas automaticamente?

Como removo centenas de impressoras de rede adicionadas automaticamente?

É muito difícil para mim realizar a impressão, porque a caixa de diálogo da impressora está cheia de centenas de impressoras adicionadas automaticamente, então não consigo encontrar a que desejo usar, veja a imagem abaixo.

Imagem do diálogo da impressora mostrando uma barra de rolagem muito longa

As impressoras vêm da minha rede de trabalho, onde aparentemente muitas pessoas (incluindo estudantes, eu acho) estão "compartilhando" suas impressoras domésticas, que meu laptop capta automaticamente. (coincidentemente, às vezes desabilito o daemon avahi no trabalho, simplesmente porque ele está usando uma grande quantidade de CPU).

Quando vou para http://localhost:631/printers/, diz que há 131 impressoras, e todas são de marca e modelo 'Impressora Raw Local'. Com duas exceções: 1 é uma impressora de rede em funcionamento que configurei manualmente. Outra é uma impressora de rede dos meus pais, que também foi adicionada automaticamente e da qual estou na mesma rede agora. Mas o resto é apenas lixo que eu realmente gostaria de evitar. Dicas sobre como fazer isso seriam apreciadas.

Porém, não voltarei ao meu local de trabalho por um tempo, então, por enquanto, gostaria apenas que essas impressoras (que seriam as impressoras 129/130 adicionadas automaticamente) fossem removidas. Existe uma maneira de fazer isso? Acho que poderia fazer isso clicando na interface web do Cups, mas para 129 impressoras, isso é um pouco demais. Então, estou procurando um único comando ou dicas sobre como alcançá-lo com uma espécie de script.

Responder1

Usando este comando: lpstat -apodemos ver as impressoras instaladas e identificar o nome da impressora desejada para manter, podemos usar o grepcomando também para filtrar os resultados assim: lpstat -a | grep <probable_name_of_printer>.

Então este pequeno script pode ajudar:

  1. Execute este comando para verificar se a impressora desejada não está listada:

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • Isso não deve retornar nada, pois faz o seguinte:

      • lpstat -a: lista as impressoras instaladas
      • cut -d" " -f1: retorna apenas os nomes das impressoras
      • sed -E '/<NAME_OF_PRINTER>/d': remova o nome da impressora para evitar a saída dos comandos anteriores
      • grep <NAME_OF_PRINTER>: certifique-se de que a impressora desejada não esteja na lista
  2. Se o acima estiver correto; em seguida, execute este comando para remover todas as outras impressoras desnecessárias:

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

informação relacionada