Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么这两个命令的结果不同?_Linux_Wildcard - Fatal编程技术网

Linux 为什么这两个命令的结果不同?

Linux 为什么这两个命令的结果不同?,linux,wildcard,Linux,Wildcard,这个命令(ls-d[!0-99])的结果已经包含了这个命令(ls-d[!0-100])。但在我看来,这两个命令的结果应该是相同的。谁能帮我解释第二个命令的结果 jack@DESKTOP-KRIB7TB:~$ ls -d [!0-99]* a b c d e f g h i j k jack@DESKTOP-KRIB7TB:~$ ls -d [!0-100]* 2 25 30 36 41 47 52 58 63 69 74 8 85 90 96

这个命令(ls-d[!0-99])的结果已经包含了这个命令(ls-d[!0-100])。但在我看来,这两个命令的结果应该是相同的。谁能帮我解释第二个命令的结果

jack@DESKTOP-KRIB7TB:~$ ls -d [!0-99]*
a  b  c  d  e  f  g  h  i  j  k
jack@DESKTOP-KRIB7TB:~$ ls -d [!0-100]*
2   25  30  36  41  47  52  58  63  69  74  8   85  90  96  c  i
20  26  31  37  42  48  53  59  64  7   75  80  86  91  97  d  j
21  27  32  38  43  49  54  6   65  70  76  81  87  92  98  e  k
22  28  33  39  44  5   55  60  66  71  77  82  88  93  99  f
23  29  34  4   45  50  56  61  67  72  78  83  89  94  a   g
24  3   35  40  46  51  57  62  68  73  79  84  9   95  b   h

a中的
[…]
语法是每个字符的匹配,而不是数字范围<例如,code>[a-c]与
[abc]
相同。一个块中可以有多个范围或单个字符,因此
[a-cfh-k]
[abcfhijk]
相同

因此
[!0-99]
[!01234567899]
相同(注意冗余的
9
),而
[!0-100]
[!0100]
相同,因此只匹配
0
s和
1
s

您可以使用
ls-d[!0-9]*
列出所有非数字目录,但我不知道有一种可靠的方法(使用globs和
ls
)列出名称大于100的目录