Я пытаюсь использовать GNU parallel
для публикации большого количества файлов в веб-сервер. В моем каталоге у меня есть файлы:
file1.xml
file2.xml
и сценарий оболочки, который выглядит так:
#! /usr/bin/env bash
CMD="curl -X POST -d@$1 http://server/path"
eval $CMD
Есть еще кое-что в сценарий, но это был самый простой пример. Я попытался выполнить следующую команду:
ls | parallel -j2 script.sh {}
Это то, что страницы GNU parallel
показывают как «нормальный» способ работы с файлами в каталоге. Кажется, это передает имя файла в мой сценарий, но curl жалуется, что не может загрузить переданный файл данных. Однако, если я передаю:
find . -name '*.xml' | parallel -j2 script.sh {}
, он работает нормально. Есть ли разница между тем, как ls
и find
передают аргументы моему скрипту? Или мне нужно сделать что-то еще в этом скрипте?