Sen, в ответ на @jlliagre, следует отметить, что некоторые операционные системы создают один раздел, но по сути создают подразделы в этом пространстве.
Это аналогично, но не равнозначно тому, что вы делаете:
parted rm 1 /dev/sda
...
parted rm 7 /dev/sda
parted mkpart primary $start $end /dev/sda
parted mkpart primary $start1 $end1 /dev/sda1
Затем вы можете использовать kpartx для доступа к этим подразделам:
kpartx -a /dev/sda1
Подраздел(ы) будет выглядеть так:
/dev/sda1p1
Конечно, FreeBSD и подобные системы делают нарезку не совсем так, но по сути это то же самое.
Рассматривали ли вы возможность использования xargs
?
find. -type f -name '*.json2' | xargs bash -c 'for fname; do if [ ! -e ${fname}.ml ]; then curl -X POST -H "Content-Type: application/json" -d @${fname} https://api.myweb.com/api > ${fname}.ml; fi; done' bash
Что касается трейлинга bash
, это «трюк», который я только что изучил на странице xargs в википедии . (Он должен быть там, иначе первый аргумент не будет обработан. )Я признаю, что никогда раньше этим не пользовался, но я протестировал его с помощью команды echo и нескольких тестовых файлов, и, похоже, он делает то, что вам нужно.
find. -type f -name '*.json2' -exec sh -c '
for pathname; do
[ -e "$pathname.ml" ] && continue
curl -X POST -H "Content-Type: application/json" -d @"$pathname" https://api.myweb.com/api >"$pathname.ml"
done' sh {} +
Это позволит найти все обычные файлы, имена файлов которых соответствуют шаблону *.json2
в текущем каталоге или ниже него. Для пакетов этих файлов выполняется короткий сценарий оболочки. Этот сценарий проверяет для каждого пути, заданного ему find
, существует ли файл .ml
, соответствующий этому пути. Если нет, выполняется ваша команда curl
.
Это можно упростить следующим образом, если все файлы расположены только в текущем каталоге:
for pathname in./*.json2; do
[ -e "$pathname.ml" ] && continue
curl -X POST -H "Content-Type: application/json" -d @"$pathname" https://api.myweb.com/api >"$pathname.ml"
done
Обратите внимание, что это по существу в точности тот же цикл, что и в скрипте, вызываемом find
. Единственное отличие состоит в том, что в первом примере find
действует как генератор пути для цикла, а в более коротком примере пути генерируются с использованием шаблона подстановки (и только из текущего каталога ).
Связанные: