Найдите file json check if generated or execute

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 и подобные системы делают нарезку не совсем так, но по сути это то же самое.

1
29.08.2018, 13:13
2 ответа

Рассматривали ли вы возможность использования 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 и нескольких тестовых файлов, и, похоже, он делает то, что вам нужно.

-1
28.01.2020, 02:12
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действует как генератор пути для цикла, а в более коротком примере пути генерируются с использованием шаблона подстановки (и только из текущего каталога ).

Связанные:

0
28.01.2020, 02:12

Теги

Похожие вопросы