假設我有以下目錄結構BASH extglob否定不工作,我希望
./testdir
./testdir/a.c
./testdir/b.c
./testdir/testdir2/
./testdir/t.tar
,並假設我的CWD是TESTDIR,我想呼應的是沒有的.tar擴展名的所有目錄條目。
這工作:
echo *.!(tar)
不過,我預計產生相同的結果,但它並不:
echo *!(tar)
只有週期從第二個命令丟失。第二個echo命令列出了d.tar文件。星號glob字符應該匹配所有字符,extglob否定字符應該列出任何不以tar結尾的內容。
此答案有幫助。很容易像在某些正則表達式規則集中使用*一樣錯誤地考慮星號字符。這裏的教訓:不要混淆正則表達式*和BASH *。他們不一樣。 – user2365114 2015-04-01 04:08:16