Bardzo trudno jest mi wykonać drukowanie, ponieważ okno dialogowe drukarki jest pełne setek automatycznie dodanych drukarek, więc nie mogę znaleźć tego, którego chcę użyć, patrz zrzut ekranu poniżej.
Drukarki pochodzą z mojej sieci służbowej, gdzie najwyraźniej wiele osób (w tym studentów, jak sądzę) „udostępnia” swoje domowe drukarki, które następnie mój laptop odbiera automatycznie. (przypadkowo czasami wyłączam demona avahi w pracy, po prostu dlatego, że używa on dużej ilości procesora).
Kiedy idę do http://localhost:631/printers/
, mówi, że jest 131 drukarek i wszystkie są marką i modelują „Lokalną drukarkę Raw”. Z dwoma wyjątkami: 1 to drukarka sieciowa w pracy, którą ręcznie skonfigurowałem. Kolejna to drukarka sieciowa u moich rodziców, która również została automatycznie dodana i która jest teraz w tej samej sieci. Ale reszta to śmieci, których naprawdę chciałbym uniknąć. Będziemy wdzięczni za wskazówki, jak to zrobić.
Jednak nie wrócę do swojego miejsca pracy przez pewien czas, więc na razie chciałbym, aby te drukarki (czyli drukarki automatycznie dodane 129/130) zostały usunięte. Czy jest na to sposób? Wydaje mi się, że mógłbym to zrobić, klikając interfejs sieciowy cup, ale dla 129 drukarek to trochę więcej. Szukam jednego polecenia lub wskazówek, jak to osiągnąć za pomocą pewnego rodzaju skryptu.
źródło
Odpowiedzi:
Za pomocą tego polecenia:
lpstat -a
widzimy zainstalowanych drukarek i zidentyfikować nazwę żądanej drukarki, aby utrzymać, możemy użyćgrep
polecenia również filtrować wyniki tak:lpstat -a | grep <probable_name_of_printer>
.Wtedy ten mały skrypt może pomóc:
Uruchom to polecenie, aby sprawdzić, czy żądanej drukarki nie ma na liście:
Nie powinno to zwracać niczego, ponieważ wykonuje następujące czynności:
lpstat -a
: wyświetla listę zainstalowanych drukarekcut -d" " -f1
: zwracaj tylko nazwy drukareksed -E '/<NAME_OF_PRINTER>/d'
: usuń nazwę drukarki, która ma być przechowywana na wyjściu poprzednich poleceńgrep <NAME_OF_PRINTER>
: upewnij się, że żądanej drukarki nie ma na liścieJeśli powyższe się sprawdzi; następnie uruchom to polecenie, aby usunąć każdą inną drukarkę, której nie potrzebujesz:
źródło
lpstat -a
wyniki w<printer_name> not accepting request since <some date> -\n reason unknown
(zreason unknown
nową linią!). Tak więc za pomocą polecenia listingu otrzymuję wiele „drukarek” o nazwie „powód” (istnieje wcięcie).lpstat -a
?sed
polecenie w „łańcuchu rur”:sed -E /reason/d
aby pozbyć się dodatkowych linii.