¿Cómo usar comodines con aptitud?

22

¿Hay alguna manera de usar comodines con aptitudelos siguientes:

sudo apt-get remove openoffice*.*
raulricardo21
fuente

Respuestas:

16

http://ubuntuforums.org/showthread.php?t=228309 indica que es posible a través de construcciones como ~n<package name>y esto lo confirma el manual del usuario http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ ch02s03s02.html .

~nin ~n<package name>es un patrón de búsqueda para nombres de paquetes coincidentes. También es posible hacer coincidir otros campos que los nombres de los paquetes, consulte http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Aquí hay un ejemplo. Digamos que desea aptitudemostrar cada paquete con "desplazamiento al rojo" en su nombre, luego emite

aptitude show ~nredshift

Debería ser combinable con otras opciones de aptitud, como instalar y eliminar, también, por ejemplo, para eliminar todos los paquetes instalados con openoffice en su nombre.

sudo aptitude -P remove ~nopenoffice

Asegúrese de usar la -Popción cuando use patrones de búsqueda para forzar la capacidad de mostrar un aviso antes de descargar, instalar o eliminar paquetes (el patrón de búsqueda puede tener muchas coincidencias y querrá que se le solicite antes de llevar a cabo una acción).

Una cosa que no he resuelto es cómo obtener la funcionalidad exacta de los comodines, por ejemplo, que openoffice*coincide con cada cadena que comienza con "openoffice" ( ~nopenofficecoincide con cualquier cadena que contenga "openoffice"). Tal vez sea posible una solución alternativa, por ejemplo, para buscar paquetes instalados con una determinada cadena en sus nombres y luego alimentar aptitude con sus nombres.

NN
fuente
-P está destinado a nunca seguir enlaces simbólicos, no rápidos
rancho
El uso de ~ nredshift no buscará desplazamiento hacia el rojo, sino ~ nredshift. Además ~ n no es ningún argumento por defecto
rancho
La respuesta dada por NorticUs es correcta. La sintaxis correcta aquí sería ~ n ^ redshift
rancho
5

Simplemente lo pones entre comillas:

sudo apt-get remove "openoffice*"

De lo contrario, el shell intentaría hacer coincidir esto con los archivos de su directorio de trabajo actual.

aquaherd
fuente
55
La pregunta es acerca aptitudey no apt-get. Esta solución no funciona con aptitud.
NN
@ MichałŠrajer: no se produce la expansión del nombre de ruta entre comillas, tanto simples como dobles
enzotib
@enzotib: Mi error. Gracias por mencionarlo. Comentario eliminado
Michał Šrajer
ok, no entiendo ... así que se puede hacer con aptitude o trabajar de esa manera ... sudo aptitude remove "openoffice *"
raulricardo21
@ raulricardo21 Algo similar se puede hacer con la aptitud, mira mi respuesta .
NN
4

Para hacer coincidir las cadenas que comienzan con un nombre de paquete, anteponga un ^al frente.
p.ej:aptitude search ~n^openoffice

Euan Thoms
fuente
Solo hago la parte de búsqueda, también debes mencionar cómo obtener el resultado de la búsqueda
rancho