Мне очень трудно выполнять печать, потому что диалог принтера полон сотен автоматически добавленных принтеров, поэтому я не могу найти тот, который хочу использовать, см. Скриншот ниже.
Принтеры происходят из моей рабочей сети, где, по-видимому, многие люди (включая студентов, я полагаю) «делятся» своими домашними принтерами, которые мой ноутбук автоматически подхватывает. (по совпадению я иногда отключаю avahi-daemon на работе, просто потому, что он использует большое количество процессора).
Когда я захожу http://localhost:631/printers/
, там написано, что есть 131 принтер, и все они сделаны из Марки и Модели 'Local Raw Printer'. За двумя исключениями: 1 - это сетевой принтер на работе, который я настроил вручную. Другой - это сетевой принтер у моих родителей, который также был автоматически добавлен, и я нахожусь в той же сети, что и сейчас. Но остальное - просто мусор, которого я действительно хотел бы избежать. Советы о том, как это сделать, будут оценены.
Я не собираюсь возвращаться на свое рабочее место на некоторое время, поэтому сейчас я просто хотел бы, чтобы эти принтеры (это были принтеры с автоматическим добавлением 129/130) были удалены. Есть способ сделать это? Я думаю, что я мог бы сделать это, щелкнув через веб-интерфейс чашки, но для 129 принтеров, это немного. Поэтому я ищу отдельную команду или советы о том, как этого добиться с помощью своего рода сценария.
источник
Ответы:
С помощью этой команды:
lpstat -a
мы можем увидеть установленные принтеры и определить имя нужного принтера , чтобы сохранить, мы можем использоватьgrep
команду также для фильтрации результатов , так как:lpstat -a | grep <probable_name_of_printer>
.Тогда этот маленький скрипт может помочь:
Запустите эту команду, чтобы проверить, что нужного принтера нет в списке:
Это ничего не должно возвращать, поскольку это делает следующее:
lpstat -a
: список установленных принтеровcut -d" " -f1
: вернуть только имена принтеровsed -E '/<NAME_OF_PRINTER>/d'
: удалить имя принтера, чтобы сохранить от вывода предыдущих командgrep <NAME_OF_PRINTER>
: убедитесь, что нужного принтера нет в спискеЕсли вышеупомянутое проверяет; затем запустите эту команду, чтобы удалить все остальные принтеры, которые вам не нужны:
источник
lpstat -a
результаты<printer_name> not accepting request since <some date> -\n reason unknown
(сreason unknown
новой строкой!). Таким образом, используя вашу команду перечисления, я получаю много «принтеров» с именем `reason` (там есть отступ).lpstat -a
?sed
команду в «цепочку труб»:sed -E /reason/d
избавиться от лишних строк.