[英]Why are the results of these two commands different?
這個命令的結果(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
glob 中的[...]
語法是按字符匹配,而不是數字范圍。 [ac]
與[abc]
相同。 塊中可以有多個范圍或單個字符,因此[a-cfh-k]
與[abcfhijk]
相同。
所以[!0-99]
與[!01234567899]
相同(注意冗余的9
),而[!0-100]
與[!0100]
相同,因此只匹配0
s 和1
s。
您可以使用ls -d [!0-9]*
列出所有非數字目錄,但我不知道有一種強大的方法(使用 globs 和ls
)可以列出名稱大於 100 的數字的目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.