bash: предварительное выделение памяти для массива

Это немного длиннее, но мне всегда нравится найти , когда я хочу уточнить. Это должно сохранить структуру и игнорировать каталог img.

find ./static -type d ! -name 'img' -exec rm -f {}/* \;

Подробное описание того, что происходит

find Команда

./ static , указывающая, где искать

type -d Выделение каталогов

! -name 'img' Игнорирование img dir

-exec rm -f {} / * \: {} заменяются найденными именами каталогов, и команда выполнен.

3
18.09.2017, 23:04
1 ответ

Нет, в bashэто невозможно.

Чтобы ускорить сценарий, попробуйте переосмыслить поток и логику программы. Очень очень редко возникает необходимость считывать огромные объемы данных в переменной или массиве.

Большинство инструментов Unix представляют собой фильтры, которые позволяют отправлять данные с одного этапа конвейера на другой, не сохраняя в памяти слишком много начальных или промежуточных данных (, часто просто по одной строке из файла за раз ). ].Необычно читать набор данных в переменную, а затем манипулировать им в оболочке. Более распространено выполнение преобразований данных с возможным агрегированием их частей.

Если вы обнаружите, что обрабатываете переменные оболочки, содержащие более нескольких слов, то, скорее всего, есть более эффективный способ сделать это.

5
27.01.2020, 21:15

Теги

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