Как принудительно выполнить сценарий, когда / не смонтирован?

Функция

Они означают разные вещи. Звездочка соответствует символам от нуля до бесконечности. Вопросительный знак соответствует ровно одному символу.

Из приведенных выше ссылок:

Символ * служит «подстановочным знаком» для расширения имени файла в подстановке.

Значок? символ служит односимвольным «шаблоном» для расширения имени файла при подстановке слов…

Производительность

tl; dr: нет заметной разницы в производительности.

Я тестировал производительность, используя каталог, заполненный 36 подкаталогами, каждый из которых назван одним символом. В совокупности в подкаталогах было около 70 000 файлов. Я проверил следующее.

$ time ls ?/* -d >/dev/null
$ time ls */* -d >/dev/null

Я чередовал каждую команду по десять раз. Вот результаты для реального времени в секундах.

?       *
0.318   0.326
0.355   0.212
0.291   0.351
0.291   0.265
0.287   0.283
0.362   0.23
0.248   0.33
0.286   0.283
0.293   0.351
0.233   0.352

После статистического анализа (парный t-критерий, двусторонний) я не смог обнаружить разницы между двумя значениями производительности (значение p = 0,95).

Graph

РЕДАКТИРОВАТЬ: Больше образцов

Я повторил вышеупомянутый анализ с 200 образцами каждый, снова чередуя тесты.

$ for i in {1..200}; do time (ls */* -d >/dev/null) 2>> /tmp/time_asterisk; time (ls ?/* -d >/dev/null) 2>> /tmp/time_question_mark; done

Вот необработанные данные для ? и * .Опять же, я не смог обнаружить существенной разницы (значение p = 0,55), и распределение каждого теста выглядит более похожим.

graph2

5
28.12.2017, 17:52
0 ответов

Теги

Похожие вопросы