Bu soru ( gnome'u bir kubuntu 12.04 kurulumundan nasıl kaldırabilirim? ) Soru işaretli komutlara sahiptir:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
Ne demek istiyorlar?
Bu soru ( gnome'u bir kubuntu 12.04 kurulumundan nasıl kaldırabilirim? ) Soru işaretli komutlara sahiptir:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
Ne demek istiyorlar?
Yanıtlar:
Bunlara Wildcards (globbing patterns) denir.
Standart joker karakterler (globbing desenleri olarak da bilinir), çeşitli komut satırı yardımcı programları tarafından birden çok dosyayla çalışmak için kullanılır.
Standart joker karakterler hemen hemen her komut tarafından kullanılır (mv, cp, rm ve diğerleri dahil).
(question mark)
bu herhangi bir karakteri temsil edebilir. Komut satırında "hd?" Gibi bir şey belirttiyseniz GNU / Linux hda, hdb, hdc ve az, 0-9 arasındaki diğer tüm harf / sayıları arar.
*(asterisk)
bu, herhangi bir sayıda karakteri temsil edebilir (sıfır dahil, başka bir deyişle sıfır veya daha fazla karakter). Bir "cd *" belirttiyseniz, "cda", "cdrom", "cdrecord" ve "cd" ile başlayan her şey "cd" nin kendisi de dahil olmak üzere kullanır. "m * l", öğütücü, mull, ml ve m ile başlayan ve l ile biten herhangi bir şey olabilir.
[ ] (square brackets)
bir aralık belirtir. Eğer m [a, o, u] m yaptıysanız: mam, anne, anne yaptıysanız: m [ad] m m ile başlayan ve biten ve a ile d arasında herhangi bir karaktere sahip olan herhangi bir şey olabilir. Örneğin, bunlar işe yarar: mam, mbm, mcm, mdm. Bu tür joker karakter bir "veya" ilişki belirtir (eşleşmesi için yalnızca bir taneye ihtiyacınız vardır).
{ } (curly brackets)
terimleri virgülle ayrılır ve her terim bir şeyin veya joker karakterin adı olmalıdır. Bu joker karakter, joker karakterlerle veya tam adlarla ("veya" ilişkisi, biri veya diğeri) eşleşen her şeyi kopyalar.
Örneğin, bu geçerli olacaktır:
cp { .doc, .pdf} ~
Bu, .doc veya .pdf ile biten her şeyi kullanıcıların giriş dizinine kopyalar. Virgüllerden sonra (veya başka bir yerde) boşluklara izin verilmediğini unutmayın.
[!]
Bu yapı [] yapısına benzer, köşeli parantez içindeki herhangi bir karakteri eşleştirmek yerine, [ve] arasında listelenmediği sürece herhangi bir karakterle eşleşir. Bu mantıklı bir DEĞİLDİR. Örneğin, rm dosyam [! 9] tüm dosyamları * (örn. Dosyam1, dosyam2 vb.) Kaldırır, ancak adının herhangi bir yerinde 9 numaralı bir dosyayı kaldırmaz.
\ (backslash)
"kaçış" karakteri olarak kullanılır, yani bir sonraki özel karakteri korumak için. Bu nedenle, "\" ters eğik çizgi arar. Tırnak işaretleri ve ters eğik çizgi (ler) kullanmanız gerekebileceğini unutmayın.
daha fazla örnek için: bu sayfayı ziyaret edin
Standard wildcards are used by nearly any command (including mv, cp, rm and many others).=> YANLIŞ. bu joker karakterler kabuk tarafından genişletilir ve komutun aldığı şey, desen yerine genişletmenin (yani kalıpla eşleşen dosyaların) sonucudur. (kalıpla eşleşen herhangi bir dosya yoksa, o kalıp doğrudan komuta
Genel olarak konuşursak, Bash'de a ?, keyfi bir karaktere genişleyen bir glob örüntüsüdür.
Örneğin:
$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2
Bu bir benzer olduğunu *, ancak bir *karşı genişleyeceği 0 veya daha fazla karakterden bir süre ?için genişletir tam olarak bir (keyfi) karakteri.
Özel durumunuzda, ?komuttaki görünüşe göre bir yazım hatasıydı.
apt-get RE'leri anlayın, ancak gnome1geçerli dizinde çağrılan bir dosya varsa, kabuk apt-get komutunu görme şansı bulamadan genişletir.
apt-get remove, paket adlarını gerektiren , kabuk tarafından joker karakter genişletmesini büyük ölçüde işe yaramaz hale getiren söz etmek gerekir . Bir dizi paketi kaldırmak istiyorsanız, kabuğun bir glob (örn.apt-get remove 'gnome.*') Olarak yorumlamaya çalışmasını önlemek için uygun şekilde belirtilen tam bir düzenli ifade kullanmanız gerekir .