Comment utiliser les caractères génériques avec aptitude?

22

Existe-t-il un moyen d'utiliser des caractères génériques aptitudecomme dans l'exemple suivant:

sudo apt-get remove openoffice*.*
raulricardo21
la source

Réponses:

16

http://ubuntuforums.org/showthread.php?t=228309 indique que c'est possible via des constructions telles que ~n<package name>et cela est confirmé par le manuel d'utilisation http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ ch02s03s02.html .

~ndans ~n<package name>est un modèle de recherche pour faire correspondre les noms de packages. Il est également possible de faire correspondre d'autres champs que les noms des packages, voir http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Voici un exemple. Dites que vous voulez aptitudeafficher chaque paquet avec "redshift" dans son nom, puis vous lancez

aptitude show ~nredshift

Il doit être combinable avec d'autres options d'aptitude, telles que l'installation et la suppression, par exemple, pour supprimer tous les packages installés avec openoffice dans leur nom que vous émettez

sudo aptitude -P remove ~nopenoffice

Assurez-vous d'utiliser l' -Poption lors de l'utilisation des modèles de recherche pour forcer aptitude à afficher une invite avant de télécharger, d'installer ou de supprimer des packages (le modèle de recherche peut avoir de nombreuses correspondances et vous voudrez être invité avant d'effectuer une action).

Une chose que je n'ai pas étudiée est de savoir comment obtenir la fonctionnalité exacte des caractères génériques, par exemple, qui openoffice*correspond à chaque chaîne commençant par "openoffice" ( ~nopenofficecorrespond à toute chaîne contenant "openoffice"). Peut-être qu'une solution de contournement est possible, par exemple pour rechercher des packages installés avec une certaine chaîne dans leurs noms, puis alimenter aptitude avec leurs noms.

NN
la source
-P est destiné à ne jamais suivre les liens symboliques, pas les invites
rancho
L'utilisation de ~ nredshift ne recherchera pas non plus redshift, mais ~ nredshift. De plus, ~ n n'est pas un argument par défaut
rancho
La réponse donnée par NorticUs est partiellement correcte. La syntaxe correcte ici serait ~ n ^ redshift
rancho
5

Vous venez de le mettre entre guillemets:

sudo apt-get remove "openoffice*"

Sinon, le shell essaierait de faire correspondre cela aux fichiers de votre répertoire de travail actuel.

aquaherd
la source
5
La question concerne aptitudeet non apt-get. Cette solution ne fonctionne pas avec aptitude.
NN
@ MichałŠrajer: aucune extension de chemin d'accès ne se produit entre guillemets, à la fois simple et double
enzotib
@enzotib: Mon erreur. Merci de l'avoir signalé. Commentaire supprimé.
Michał Šrajer
ok, je ne comprends pas ... donc peut être fait avec aptitude ou travailler de cette façon ... sudo aptitude supprimer "openoffice *"
raulricardo21
@ raulricardo21 Une chose similaire peut être faite avec l'aptitude, voir ma réponse .
NN
4

Pour faire correspondre des chaînes commençant par un nom de package, ajoutez un ^devant celui-ci.
par exemple:aptitude search ~n^openoffice

Euan Thoms
la source
Je fais juste la partie recherche, vous devez également mentionner comment obtenir le résultat de la recherche
rancho