Быстрая проверка в источнике findutils показывает, что find запускает дочерний процесс для каждого exec.Я полагаю, что тогда это продолжается, хотя, возможно, я неверно истолковываю источник.Из-за этого вы уже параллельны, так как ОС будет обрабатывать их через ваши ядра.И благодаря магии виртуальной памяти одни и те же исполняемые файлы будут в основном использовать то же пространство памяти.
Проблема, с которой вы столкнетесь, - это блокировка файлов / смешивание данных.При запуске каждого отдельного ребенка он передает информацию в ваш файл info
.Это отдельные команды сценариев, поэтому они будут смешивать свой вывод вместе, как спагетти.Это не гарантирует, что файлы будут в порядке!Просто все содержимое отдельного файла останется вместе.
Чтобы решить эту проблему, все, что вам нужно сделать, это воспользоваться возможностью оболочки создать временный файл (используя tempfile
), иметь каждый скриптсоздайте дамп для временного файла, затем поместите каждый скрипт cat
временный файл в файл info
.Не забудьте удалить временный файл после использования.
Если временные файлы находятся в оперативной памяти (см. tmpfs ), тогда вы избежите привязки к IO, за исключением случаев записи в окончательный файл,и запустить поиск поиска.
Tmpfs - это специальная файловая система, которая использует ваш RAM в качестве «дискового пространства».Это займет количество оперативной памяти, которое вы разрешаете, не будет использовать больше, чем нужно из этого количества, и при необходимости перепишется на диск, если оно заполнится.
Для использования:
- Создать точку монтирования (мне нравится / mnt / ramdisk или / media / ramdisk)
- Редактировать / etc / fstab от имени root
- Add
tmpfs /mnt/ramdrive tmpfs size=1G 0 0
- Запустите umount от имени root, чтобы смонтировать новый ramdrive.Он также будет монтироваться при загрузке.
См. Запись в Википедии на fstab для всех доступных опций.