Jak używać symboli wieloznacznych z aptitude?

22

Czy istnieje sposób używania symboli wieloznacznych z aptitudenastępującymi:

sudo apt-get remove openoffice*.*
raulricardo21
źródło

Odpowiedzi:

16

http://ubuntuforums.org/showthread.php?t=228309 wskazuje, że jest to możliwe dzięki konstrukcjom takim jak ~n<package name>i to jest potwierdzone w instrukcji użytkownika http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ ch02s03s02.html .

~nin ~n<package name>to wzorzec wyszukiwania pasujących nazw pakietów. Możliwe jest również dopasowanie innych pól niż nazwy pakietów, patrz http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Oto przykład. Powiedz, że chcesz aptitudepokazać każdą paczkę z „redshift” w nazwie, a następnie wydajesz

aptitude show ~nredshift

Powinien być łączony z innymi opcjami aptitude, takimi jak instaluj i usuwaj, np. Aby usunąć wszystkie zainstalowane pakiety z openoffice w nazwie, którą wydajesz

sudo aptitude -P remove ~nopenoffice

Upewnij się, że korzystasz z tej -Popcji, gdy używasz wzorców wyszukiwania, aby zmusić aptitude do wyświetlenia monitu przed pobraniem, zainstalowaniem lub usunięciem pakietów (wzorzec wyszukiwania może mieć wiele dopasowań i będziesz monitowany przed wykonaniem akcji).

Jedną z rzeczy, której nie opracowałem, jest to, jak uzyskać dokładną funkcjonalność symboli wieloznacznych, np. Która openoffice*pasuje do każdego łańcucha rozpoczynającego się od „openoffice” ( ~nopenofficepasuje do dowolnego łańcucha zawierającego „openoffice”). Być może możliwe jest obejście problemu, np. Wyszukiwanie zainstalowanych pakietów z określonym ciągiem w nazwach, a następnie karmienie aptitude ich nazwami.

NN
źródło
-P jest przeznaczony do nigdy nie podążania za dowiązaniami symbolicznymi, a nie monitami
rancho
Również użycie ~ nredshift nie będzie szukało redshift, ale ~ nredshift. Również ~ n nie jest domyślnie żadnym argumentem
rancho
Odpowiedź udzielona przez NorticUs jest zdecydowanie poprawna. Poprawna składnia tutaj to ~ n ^ redshift
rancho
5

Po prostu umieść to w cudzysłowie:

sudo apt-get remove "openoffice*"

W przeciwnym razie powłoka spróbuje dopasować to do plików bieżącego katalogu roboczego.

aquaherd
źródło
5
Pytanie dotyczy aptitudei nie apt-get. To rozwiązanie nie działa z aptitude.
NN
@ MichałŠrajer: nie występuje rozwinięcie nazwy ścieżki w cudzysłowie, zarówno pojedyncze, jak i podwójne
enzotib
@enzotib: Mój błąd. Dzięki za zwrócenie na to uwagi. Usunięto komentarz.
Michał Šrajer
ok, nie rozumiem ... więc można to zrobić z aptitude lub pracować w ten sposób ... sudo aptitude usuń „openoffice *”
raulricardo21
@ raulricardo21 Podobną rzecz można zrobić z uzdolnieniem, patrz moja odpowiedź .
NN
4

Aby dopasować ciągi zaczynające się od nazwy pakietu, należy wstawić ^przed nim.
na przykład:aptitude search ~n^openoffice

Euan Thoms
źródło
Robię tylko część wyszukiwania, należy również wspomnieć o tym, jak uzyskać wynik wyszukiwania
rancho