Как удалить сотни автоматически добавленных сетевых принтеров?

Мне очень сложно выполнять печать, потому что диалог принтера полон сотен автоматически добавленных принтеров, поэтому я не могу найти тот, который хочу использовать, см. Скриншот ниже.

Image of printer dialogue showing a very long scroll bar

Принтеры происходят из моей рабочей сети, где, очевидно, многие люди (включая студентов, я полагаю) «делятся» своими домашними принтерами, которые Мой ноутбук автоматически включается. (по совпадению я иногда отключаю avahi-демон на работе, просто потому, что он использует большое количество процессора).

Когда я перехожу к http://localhost:631/printers/, там говорится о 131 принтере, и все они изготовлены и изготовлены как «Локальный сырой принтер». За двумя исключениями: 1 - это сетевой принтер на работе, который я настроил вручную. Другой - это сетевой принтер у моих родителей, который также был автоматически добавлен, и я сейчас в той же сети, что и сейчас. Но остальное - просто мусор, которого я действительно хотел бы избежать. Советы о том, как это сделать, будут оценены.

Я не буду возвращаться на свое рабочее место какое-то время, поэтому сейчас я просто хотел бы удалить эти принтеры (то есть принтеры с автоматически добавляемыми 129/130). Есть способ сделать это? Я думаю, что я мог бы сделать это, щелкнув через веб-интерфейс чашки, но для 129 принтеров, это немного. Поэтому я ищу отдельную команду или советы о том, как этого добиться с помощью своего рода сценария.

16
задан 30 May 2019 в 21:41

1 ответ

Используя эту команду: lpstat -a мы видим установленные принтеры и определяем название желаемого принтера для хранения, мы можем использовать grep управляйте также для фильтрации результатов как так: lpstat -a | grep <probable_name_of_printer>.

Затем этот небольшой сценарий может помочь:

  1. Выполните эту команду, чтобы проверить, что желаемый принтер не перечислен:

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • Это ничего не должно возвращать, поскольку это делает следующее:

      • lpstat -a: перечислите установленные принтеры
      • cut -d" " -f1: возвратите только названия принтеров
      • sed -E '/<NAME_OF_PRINTER>/d': удалите название принтера для удержаний от вывода предыдущих команд
      • grep <NAME_OF_PRINTER>: удостоверьтесь, что желаемый принтер не находится в списке
  2. Если вышеупомянутое проверяет; затем выполните эту команду для удаления любого принтера, в котором Вы не нуждаетесь:

    sudo bash -c 'for i in $(lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d'); do lpadmin -x "$i"; done'
    
13
ответ дан 30 May 2019 в 21:41

Другие вопросы по тегам:

Похожие вопросы: