Відповіді:
Коротка відповідь: Так, так і буде.
З сторінки " bash man ":
Після розбиття слів, якщо не встановлено параметр -f (див. Набір вбудованих файлів), Bash сканує кожне слово на символи '*', '?' Та '['. Якщо з’являється один із цих символів, то слово вважається візерунком і замінюється алфавітно відсортованим списком імен файлів, що відповідають шаблону.
ls
тій же системі.
Коротка відповідь - так, але вам потрібно знати, що він вважає алфавітно-цифровим порядком, оскільки він може не відповідати природному порядку, який ви маєте на увазі.
Наприклад, проведіть тест на те, як обробляються верхні та малі регістри, щоб дізнатись у вашій системі, а також послідовності чисел.
Поширена проблема, з якою у мене виникли впорядкування списків файлів, повернених глобусом, - це нумеровані файли. Мені часто дають файли, пронумеровані як:
blah_1.txt
blah_2.txt
...
blah_10.txt
blah_11.txt
Однак глобус, що використовує заголовок *
, не поверне їх у такому порядку, натомість ви отримаєте щось на зразок:
blah_1.txt
blah_10.txt
blah_11.txt
...
blah_2.txt
blah_20.txt
...
Так що - щоб уникнути цієї проблеми , ви будете повинні зробити деякі маніпуляції на повернутому списку файлів або перейменовувати файли , так що однозначних цифр мають провідні нулі (тобто blah_01.txt
, blah_02.txt
і т.д.).
$LC_COLLATE
).