簡體   English   中英

為什么這兩個命令的結果不同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM