Использует xargs быстрее, чем не использует его?

Это быстрее:

find /tmp -name core -type f | xargs /bin/rm -f 

чем это:

 find /tmp -name core -type f -exec /bin/rm -f {} \; 

Так будет ли использование xargs увеличивать общую скорость?

(Я получил пример с man-страницы xargs .)

2 Solutions collect form web for “Использует xargs быстрее, чем не использует его?”

Как уже сказал Мат, в общем случае вы должны знать, что каждый байт может быть в имени файла, кроме символа NUL (поскольку он ограничивает конец строки) и / (поскольку он удаляет элементы пути). Таким образом, ваш пример xargs должен быть (в системе GNU)

 find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f 

Эквивалент есть -exec в поиске, но с a + вместо \; ,

 find /tmp -name core -type f -exec /bin/rm -f {} + 

Эта версия не вызывает /bin/rm для каждого файла, но связывает аргументы, как xargs делает xargs .

Первая версия может быть быстрее, чем вторая: xargs будет передавать несколько файлов за раз до rm , но find будет вызывать rm один раз для каждого файла.

Таким образом, с первой версией может быть меньше вызовов fork / exec.

(Если есть одно совпадение или вообще нет, вторая версия, скорее всего, будет быстрее: нет необходимости xargs сам xargs .)

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

  • Использовать ли `xargs` аргументы, которые он получает каждый вместо каждых аргументов` -n`?
  • Как перемещаться по xargs, где каждый скрипт использует общую переменную env
  • xargs -r0 vs xargs -0
  • эхом basename под xargs?
  • Как объединить входы xarg с большим количеством аргументов?
  • Использование xargs с вводом из файла
  • Как заставить xargs играть хорошо с stdin?
  • find + xargs: строка аргумента слишком длинная
  • цикл xargs с переменной ввода для использования в команде с несколькими командами
  • команда после команды grep не работает
  • Найти изображения по размеру: find / file / awk
  • Interesting Posts

    Уточнение, пожалуйста, на медленном диске трюк

    Команда Split для создания файла с номером в качестве имени файла

    Странное поведение при поиске .zshrc

    Невозможно использовать tar для запуска архива через сжатие bzip2

    Как интерпретировать следующий образец данных о времени безотказной работы?

    Как разбить строку на какой-то разделитель непечатаемого символа?

    Невидимые биты в сообщениях об ошибках node-gyp, запущенных под консолью под управлением VMware

    Задание CRON для выполнения команды с низкой памятью

    собственный файл журнала smartd в системе systemd + journald

    rsync разреженного изображения qemu увеличивает размер диска

    crontab "0/15" минут + "11-15" час поля: когда это заканчивается?

    Как переключиться из режима ввода в командный режим в ed?

    centos – Удалите логотип пингвина при запуске

    Можно ли использовать libc на самой стадии загрузчика?

    Где сохраняются настройки уровня звука для mplayer?

    Linux и Unix - лучшая ОС в мире.