Что делает вопросительный знак в терминальной средней команде?

Этот вопрос (Как я могу удалить гнома из установки kubuntu 12.04?) имеют команды с метками вопроса:

sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?

Что они имеют в виду?

11
задан 28 October 2017 в 08:43

2 ответа

Тех называют Подстановочные знаки (globbing шаблоны)

, Стандартные подстановочные знаки (также известный как globbing шаблоны) используются различными утилитами командной строки для работы с несколькими файлами.
Стандартные подстановочные знаки используются почти любой командой (включая mv, CP, комнату и многих других).

  • (question mark)

    это может представить любой отдельный символ. Если Вы определили что-то в командной строке как "HD?" GNU/Linux искал бы hda, hdb, hdc и любую букву/число между a-z, 0-9.

  • *(asterisk)

    это может представить любое количество символов (включая нуль, другими словами, нуль или больше символов). При определении "CD*", он использовал бы "cda", "CD-ROM", "cdrecord" и что-либо, что запускается с “cd” также включая сам “cd”. "m*l" мог фрезой, путаницей, ml, и чем-либо, что запускается с m и заканчивается l.

  • [ ] (square brackets)

    определяет диапазон. Если Вы сделали m [a, o, u] m это может стать: mam, мама, мама, если Вы сделали: m [a-d] m это может стать чем-либо, что запускается и заканчивается m и имеет любой символ к d промежутку. Например, они работали бы: mam, mbm, mcm, mdm. Этот вид подстановочного знака определяет отношения “or” (Вам только нужен для соответствия).

  • { } (curly brackets)

    условия разделяются запятыми, и каждый термин должен быть названием чего-то или подстановочного знака. Этот подстановочный знак скопирует что-либо, что соответствует или подстановочному знаку (знакам) или точному имени (именам) (отношения “or”, один или другой).

<час>

, Например, это было бы допустимо:

  • CP { .doc, .pdf} ~

    Это скопирует что-либо заканчивающееся .doc или .pdf к пользовательскому корневому каталогу. Обратите внимание, что пробелы не позволяются после запятых (или больше нигде).

  • [!]

    Эта конструкция подобна [] конструкция, кроме вместо того, чтобы соответствовать любым символам в скобках, это будет соответствовать любому символу, пока это не перечислено между [и]. Это - логическое НЕТ. Например, комната myfile [! 9] удалит весь myfiles* (т.е. myfiles1, myfiles2 и т.д.), но не удалит файл с номером 9 никуда в, он - имя.

  • \ (backslash)

    используется в качестве символа "Escape", т.е. защищать последующий специальный символ. Таким образом, "\” ищет обратную косую черту. Обратите внимание, что Вы, возможно, должны использовать кавычки и обратную косую черту (черты).

для большего количества примеров: посещение эта страница

15
ответ дан 23 November 2019 в 03:52

Вообще говоря, в Bash, ? шаблон шарика, который расширяется до произвольного символа.

, Например:

$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2

Это сродни *, но * расширяется до 0 или больше символы, в то время как ? расширяется до точно один (произвольный) символ.

В Вашем особом случае, хотя, ? в команде была, по-видимому, опечатка.

17
ответ дан 23 November 2019 в 03:52

Другие вопросы по тегам:

Похожие вопросы: