1

Допустим, у меня есть около 10 hg репозиториев, клонированных в родительском каталоге (назовем это "родительский"). Есть ли способ , я могу вызвать ртутную команду как hg status на всех рт.ст. из подкаталогов , а не выполнять трудоемкий акт cd ать в каждую директорию , а затем вызывая hg status

Я попробовал старые добрые xargs но по какой-то причине он не работает. Команды, которые я использовал:

find . -maxdepth 1 -type d -print | xargs -t "hg status"

а также

ls | xargs -t "hg status"

Обновление: решение было использовать явные имена владельцев при использовании xargs . Что-то вроде:

ls | xargs -t -I {} hg status {}

2 ответа2

2
for dir in ./*/
do
  (cd $dir && hg status)
done
1

Если hg позволяет работать параллельно, вы можете использовать GNU Parallel

parallel cd {} '&&' hg status ::: ./*/

Если нет, вы можете добавить -j1:

parallel -j1 cd {} '&&' hg status ::: ./*/

Посмотрите вступительное видео, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .