locate (1) буферизует свой вывод [дубликат]

Раздел подкачки используется только для хранения временных файлов и часто для подкачки содержимого первичной памяти, когда первичной памяти мало, а в памяти накапливаются другие программы. Это позволяет ОС временно хранить в Swap-разделе неактивные части некоторых программ и загружать новые. Поскольку одновременно работает только одна ОС, а раздел Swap - это просто еще один раздел жесткого диска с флагом "swap", вы можете выделить одно и то же пространство Swap для нескольких ОС.

Tldr; Можно разделить пространство подкачки между двумя ОС, и вам не нужно создавать отдельное пространство подкачки.

Посмотрите здесь

1
29.09.2016, 15:52
2 ответа

Конечно, я нашел ответ сразу после публикации в сообщении , предложенном stackexchange при публикации .

unbuffer (from expect) решает эту проблему.

unbuffer locate something | xargs -n 1 do_something

запускает команды настолько быстро, насколько locate может их найти.

1
27.01.2020, 23:35

locate буферизует поток STDOUT, вам необходимо сделать STDOUT для locate небуферизованным (или буферизованным по строке).

Если вы работаете в системе GNU, вы можете использовать stdbuf (поставляется с GNU coreutils ).

Чтобы сделать STDOUT locate небуферизованным:

stdbuf -o0 locate something | ...

Буферизованная строка:

stdbuf -oL locate something | ...

Проверьте man stdbuf , чтобы получить больше информации.

1
27.01.2020, 23:35

Теги

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