在bash中观察以下示例命令:
jason@MacBook:~ mkdir temp
jason@MacBook:~ cd temp
jason@MacBook:~/temp touch file.txt
jason@MacBook:~/temp touch file1.txt
jason@MacBook:~/temp touch file2.txt
jason@MacBook:~/temp ls file*
file.txt file1.txt file2.txt
jason@MacBook:~/temp touch file0.txt
jason@MacBook:~/temp ls file*
file.txt file0.txt file1.txt file2.txt
jason@MacBook:~/temp touch fil.txt
jason@MacBook:~/temp ls fil*
fil.txt file.txt file0.txt file1.txt file2.txt
jason@MacBook:~/temp
从输出中可以看出,所有文件名都按升序词典顺序排序。
我想知道这是否是bash的要求或者它是否是特定于实现的,并且恰好在我的Mac的bash shell中以这种方式工作。我问的原因是因为如果文件名存储在trie中,并且事实证明bash 确实要求字符串按字典顺序打印,代码中需要进行少量调整才能正确遍历trie以按升序打印出文件名。