web-dev-qa-db-fra.com

Comment supprimer des centaines d'imprimantes réseau ajoutées automatiquement?

Il est très difficile pour moi d'effectuer l'impression, car la boîte de dialogue de l'imprimante est remplie de centaines d'imprimantes ajoutées automatiquement, donc je ne trouve pas celle que je veux utiliser, voir capture d'écran ci-dessous.

Image of printer dialogue showing a very long scroll bar

Les imprimantes proviennent de mon réseau de travail, où apparemment beaucoup de gens (y compris les étudiants, je suppose) "partagent" leurs imprimantes personnelles, que mon ordinateur portable récupère ensuite automatiquement. (par coïncidence, je désactive parfois le démon avahi au travail, simplement parce qu'il utilise une grande quantité de CPU).

Quand je vais à http://localhost:631/printers/, il est indiqué qu'il y a 131 imprimantes, et elles sont toutes de marque et de modèle "Imprimante brute locale". À deux exceptions près: 1 est une imprimante réseau au travail que j'ai configurée manuellement. Une autre est une imprimante réseau chez mes parents, qui a également été ajoutée automatiquement et que je suis sur le même réseau que maintenant. Mais le reste n'est que des ordures que j'aimerais vraiment éviter. Des conseils sur la façon de procéder seraient appréciés.

Je ne retournerai pas à mon lieu de travail pendant un certain temps, donc pour l'instant, je voudrais juste que ces imprimantes (ce serait les imprimantes 129/130 ajoutées automatiquement) soient supprimées. Y-a-t-il un moyen de faire ça? Je suppose que je pourrais le faire en cliquant dans l'interface Web de cups, mais pour 129 imprimantes, c'est un peu trop. Je suis donc à la recherche d'une seule commande ou de conseils sur la façon d'y parvenir avec un script de toutes sortes.

18
jonaslb

En utilisant cette commande: lpstat -a nous pouvons voir les imprimantes installées et identifier le nom de l'imprimante à conserver, nous pouvons également utiliser la commande grep pour filtrer les résultats comme suit: lpstat -a | grep <probable_name_of_printer>.

Ensuite, ce petit script peut vous aider:

  1. Exécutez cette commande pour vérifier que l'imprimante souhaitée n'est pas répertoriée:

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • Cela ne devrait rien retourner car il fait ce qui suit:

      • lpstat -a: liste les imprimantes installées
      • cut -d" " -f1: retourne uniquement les noms des imprimantes
      • sed -E '/<NAME_OF_PRINTER>/d': supprime le nom de l'imprimante à conserver de la sortie des commandes précédentes
      • grep <NAME_OF_PRINTER>: assurez-vous que l'imprimante souhaitée ne figure pas dans la liste
  2. Si ce qui précède vérifie; puis exécutez cette commande pour supprimer toutes les autres imprimantes dont vous n'avez pas besoin:

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