У цьому питанні ( як я можу видалити gnome з установки kubuntu 12.04? ) Є команди з позначками запитання:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
Що вони означають?
У цьому питанні ( як я можу видалити gnome з установки kubuntu 12.04? ) Є команди з позначками запитання:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
Що вони означають?
Відповіді:
Вони називаються Wildcards (глобальні візерунки)
Стандартні символи (також відомі як шаблони глобалізації) використовуються різними утилітами командного рядка для роботи з декількома файлами.
Стандартні символи використовуються майже будь-якою командою (включаючи mv, cp, rm та багато інших).
(question mark)
це може представляти будь-який окремий символ. Якщо ви вказали щось у командному рядку типу "hd?" GNU / Linux шукає hda, hdb, hdc та будь-яку іншу літеру / цифру між az, 0-9.
*(asterisk)
це може представляти будь-яку кількість символів (включаючи нуль, іншими словами, нуль або більше символів). Якщо ви вказали "cd *", він використовував би "cda", "cdrom", "cdrecord" і все, що починається з "cd", включаючи сам "cd". "m * l" міг би млин, мул, мл і все, що починається з m і закінчується a l.
[ ] (square brackets)
задає діапазон. Якщо ви зробили m [a, o, u] m, вона може стати: мама, мама, мама, якщо ви зробили: m [ad] m, вона може стати будь-чим, що починається і закінчується м і має будь-який символ a до d між. Наприклад, це спрацювало б: mam, mbm, mcm, mdm. Цей тип підстановки визначає "чи" відносини (вам потрібен лише один).
{ } (curly brackets)
Терміни розділені комами, і кожен термін повинен бути назвою чогось або символом. Цей підстановочний код буде копіювати будь-що, що відповідає або знакам, або точним іменам (відносинам "або", тим чи іншим).
Наприклад, це було б дійсно:
cp { .doc, .pdf} ~
Це скопіює все, що закінчується .doc або .pdf, у домашній каталог користувачів. Зауважте, що пропуски після коми (або деінде) заборонені.
[!]
Ця конструкція схожа на конструкцію [], але замість того, щоб відповідати будь-яким символам всередині дужок, вона буде відповідати будь-якому символу, доки вона не буде вказана між [і]. Це логічно НЕ. Наприклад, rm myfile [! 9] видалить усі файли * (тобто, myfiles1, myfiles2 тощо), але не видалить файл із номером 9 ніде в його назві.
\ (backslash)
використовується як символ "втечі", тобто для захисту наступного спеціального символу. Таким чином, "\" здійснює пошук зворотної косої риски. Зверніть увагу, що вам може знадобитися використання лапок та зворотньої косої риси.
для додаткових прикладів: відвідайте цю сторінку
Standard wildcards are used by nearly any command (including mv, cp, rm and many others).
=> ЛАЖНА. ці шаблони розширюються оболонкою, і те, що отримує команда, є результатом розширення (тобто файлів, що відповідають шаблону) замість шаблону. (якщо немає жодного файлу, що відповідає шаблону, тоді цей шаблон буде переданий безпосередньо команді)
Взагалі, в Bash, a ?
- це глобальна модель, яка розширюється до довільного характеру.
Наприклад:
$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2
Він схожий на a *
, але *
розширюється на 0 і більше символів, тоді як ?
розширюється на точно один (довільний) символ.
У вашому спеціальному випадку, ?
команда, мабуть, була помилковою.
apt-get
зрозуміти REs, але якщо файл, який називається, gnome1
існує в поточному каталозі, оболонка розширить його, перш ніж apt-get мав шанс побачити його.
apt-get remove
потрібні назви пакетів , а не назви файлів, що робить розширення шаблону оболонкою в значній мірі марним. Якщо ви хочете видалити діапазон пакунків, вам потрібно використовувати повний регулярний вираз, цитований належним чином, щоб оболонка не намагалася інтерпретувати його як глобус (наприкладapt-get remove 'gnome.*'
).