- Ровно 2 процесса - 1 для
rm
, другой для find
. - 3 или более процессов.1 для
find
, другой для xargs
и один или несколько rm
.xargs
будет читать стандартный ввод, и если он читает больше строк, чем может быть передано в качестве параметров в программу (существует максимальное значение с именем ARG_MAX
). - Многие процессы, 1 для
find
ипо одному для каждого файла, оканчивающегося на .o
для rm
.
На мой взгляд, вариант 2 - лучший, поскольку он правильно обрабатывает ограничение максимального параметра и не порождает слишком много процессов.,Однако я предпочитаю использовать его следующим образом (с GNU find и xargs):
find . -type f -name '*.o' -print0 | xargs -0 rm
Это завершает каждое имя файла \0
вместо новой строки, так как имена файлов в UNIX могут по закону содержать новые строки.Это также правильно обрабатывает пробелы в именах файлов (гораздо чаще).