这个问题(如何从kubuntu 12.04安装中删除gnome?)具有带问号的命令:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
他们的意思是什么?
这个问题(如何从kubuntu 12.04安装中删除gnome?)具有带问号的命令:
sudo apt-get remove --purge ubuntu-desktop
sudo apt-get remove --purge unity?
sudo apt-get remove --purge gnome?
他们的意思是什么?
Answers:
这些称为通配符(通配符模式)
各种命令行实用程序都使用标准通配符(也称为通配符模式)来处理多个文件。
几乎所有命令(包括mv,cp,rm和许多其他命令)都使用标准通配符。
(question mark)
这可以代表任何单个字符。如果您在命令行中指定了诸如“ hd?”之类的内容 GNU / Linux将查找hda,hdb,hdc以及az(0-9)之间的其他每个字母/数字。
*(asterisk)
它可以代表任意数量的字符(包括零个字符,换句话说,零个或多个字符)。如果指定了“ cd *”,它将使用“ cda”,“ cdrom”,“ cdrecord”以及以“ cd”开头的任何内容,还包括“ cd”本身。“ m * l”可以用磨,仔细考虑,ml以及任何以m开头并以l结尾的东西表示。
[ ] (square brackets)
指定范围。如果您做了m [a,o,u] m,它可能会变成:妈妈,妈妈,妈妈如果您做了:m [ad] m,它可能会变成任何以m开头和结尾,并且中间有a到d的字符。例如,这些将起作用:mam,mbm,mcm,mdm。这种通配符指定“或”关系(您只需要一个即可匹配)。
{ } (curly brackets)
术语用逗号分隔,每个术语必须是名称或通配符。该通配符将复制与通配符或确切名称(“或”关系,一个或另一个)匹配的任何内容。
例如,这将是有效的:
cp { .doc, .pdf}〜
这会将以.doc或.pdf结尾的所有内容复制到用户的主目录。请注意,逗号(或其他任何地方)后不能有空格。
[!]
此结构类似于[]构造,除了不匹配方括号内的任何字符,只要不在[和]之间列出,它将匹配任何字符。这是合乎逻辑的NOT。例如,rm myfile [!9]将删除所有myfiles *(即myfiles1,myfiles2等),但不会删除名称中任何地方带有数字9的文件。
\ (backslash)
用作“转义”字符,即保护后续的特殊字符。因此,“ \”搜索反斜杠。注意,您可能需要使用引号和反斜杠。
有关更多示例:请访问此页面
Standard wildcards are used by nearly any command (including mv, cp, rm and many others).
=>错误。这些通配符由shell扩展,命令接收的是扩展的结果(即与模式匹配的文件)而不是模式。(如果没有与该模式匹配的文件,则该模式将直接传递给命令)
一般而言,在Bash中,a ?
是扩展为任意字符的glob模式。
例如:
$ echo Hello1 > foo1
$ echo Hello2 > foo2
$ cat foo?
Hello1
Hello2
它类似于*
,但是a *
扩展为0个或更多字符,而a ?
扩展为正好一个(任意)字符。
不过,在您的特殊情况下,?
命令中的显然是一个错字。
apt-get
可以理解RE,但是如果gnome1
当前目录中存在一个名为的文件,则在apt-get有机会看到它之前,shell会将其展开。
apt-get remove
需要软件包名称,而不是文件名,这使得shell扩展通配符变得毫无用处。如果要删除一系列软件包,则需要使用完整的正则表达式,并用适当的引号引起来,以防止shell尝试将其解释为glob(例如apt-get remove 'gnome.*'
)。