Длинные аргументы XARGS и пауза между командами - PullRequest
0 голосов
/ 09 декабря 2018

Xargs выполнит команду более одного раза автоматически, если аргументы команды слишком длинные.

В настоящее время я получаю различия ревизий в git и передаю эти аргументы в архив git через xargs.Случается, что различия в ревизиях велики, поэтому xargs автоматически разделяет команду на два раза.

Из-за этого архив git, сделанный дважды для одного и того же архива, который приводит к тому, что все, что архивируется первой командой, стираетсявторая команда.

Есть ли способ разрешить xargs делать паузу между командами или, возможно, уведомить xargs о необходимости архивирования в два разных файла zip?

1 Ответ

0 голосов
/ 09 декабря 2018

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

Итак, если вы в данный момент выполняете:

xargs -0 doSomethingWithFiles

... вы можете заменить его на:

xargs -0 bash -c '"$@"; sleep 5' _ doSomethingWithFiles
...