sudo apt-get remove ^k3b
代わりに使用してください。パッケージをインストールまたは削除するとき*
は、多くの場合危険であり、ほとんど必要ありません。あなたが使用を行う場合*
、あなたはそれを引用しなければならないが、それはないではない、その傾向はあなたが道の結果であるつもりよりもはるかに多くのパッケージを選択するので、それはより安全にapt
し、apt-get
それを解釈していないの効果パス名展開を。
- さえの安全な使用法は
*
あるしばしば不要。
- 安全でない使用は残忍です。削除
k3b*
すると、名前にk3
任意の場所を含むすべてのパッケージ(およびそのようなパッケージに依存するすべてのパッケージ)が削除されます。これはタイプミスではありません。「ゼロ以上のs 」を意味するため、がk3
なくても十分です。b
b*
b
あなたが実行した場合apt
またはapt-get
でinstall
、remove
、またはpurge
アクション、その後の各引数が最初である1個々のパッケージの名前として解釈します。その正確な名前のパッケージが存在する場合、そのパッケージに対してアクションが実行されます。
そこには、このようなパッケージではありません、場合apt
やapt-get
引数は共通のいずれかが含まれているかどうかを確認します正規表現の メタ文字を2 .
、?
、+
、*
、|
、\[
、^
、または$
。そうでない場合は完了です。パッケージは見つかりませんでした。
これらの文字が含まれている場合、正規表現として扱われ、パッケージ名の任意の部分と照合されます。名前全体と一致する必要はありません。他の人が言ったよう*
に、正規表現*
ではグロブと同じことを意味しません。?
どちらでもありません。正規表現で:
apt-get(8)(man apt-get
)言う:
指定された式に一致するパッケージがなく、式に「。」、「?」のいずれかが含まれる場合 または「*」はPOSIX正規表現であると想定され、データベース内のすべてのパッケージ名に適用されます。一致したものはすべてインストール(または削除)されます。一致はサブストリングによって行われるため、「lo。*」は「how-lo」および「lowest」に一致することに注意してください。これが望ましくない場合は、正規表現を「^」または「$」文字で固定するか、より具体的な正規表現を作成します。
manページのみ言及し.
、?
と*
、しかし、それは不完全であるとして、+
、|
、[
、^
、と$
も聞かせするのに十分であるapt-get
か、apt
正規表現としてパターンを解釈します。3
あなたが任意の数の任意の文字と一致させることができますが.*
- ないだけで*
、それはに表示される場合--youにのみ、これを必要とするミドルあなたの正規表現の。パターンはパッケージ名のサブストリングと照合されるため、パターンの最後(または最初)で意味がありません。
manページには言及^
して$
。これらは、(特に^
)で使用するために安全で、効率的なパターンを書き込むの鍵であるinstall
、remove
またはpurge
内のアクションapt
またはapt-get
。
^
文字列全体の先頭に正規表現を固定します。^k3b
名前がすべてのパッケージを選択起動してをk3b
。
$
文字列全体の最後に正規表現をアンカーします。k3b$
名前は、すべてのパッケージを選択します終わるとをk3b
。
したがって、このコマンドを使用して、パッケージを安全に削除できます。
sudo apt-get remove ^k3b
最後に、言及した特定のケースでは、両方の名前を自分で渡すこともできます。
sudo apt-get remove k3b k3b-data
次に、この複雑さをすべて回避します!(アンカーは、慣れれ^
ば簡単になります。)または、ブレース展開を使用します。これは、シェルが上記のコマンドに展開します。
sudo apt-get remove k3b{,-data}
1 :これには2つの例外があります()いくつかのオプションが(例えば、-f
、--purge
)認識され、および (B)に現れるいくつかの句読点終わりそうでない場合は、アクションを実行するためにパッケージ名として解釈されるだろう引数のが可能に実行内容を変更するために使用されます(たとえば、パッケージではなくタスクをsudo apt install ubuntu-desktop^
インストールし、最後にいつ表示されるかなど)。^
2 他の正規表現メタキャラクターが存在します。たとえば\
、正規表現のすべての方言でサポートされ、一般的に使用されています。.
、?
、+
、*
、|
、[
、^
、と$
だけAPT開発者は正規表現として解釈を誘発することを決めたメタ文字であることを起こる(名前の正確なパッケージとして解決した後に失敗しました)。
3 これを確認する最も簡単な方法は、-s
上記のオプションを使用して、このようなパターンでインストールまたは削除をシミュレートすることです。たとえば、名前がで始まるパッケージマネージャーが知っているすべてのパッケージをインストールしようとする効果があるapt -s install ^virtualbox
ショーを実行sudo apt install ^virtualbox
しvirtualbox
ます。ただし、この動作はソースコードを調べることでも確認できます。のCacheSetHelper::PackageFromRegEx
機能を確認しますcacheset.cc
。