Вставьте значение из файла JSON в путь к имени файла

Мне нужно скопировать файл и переименовать его на основе значения из файла JSON:

info.json
{
  "folderName": "berlin"
}

чтобы получить folderName из JSON я могу использовать:

jq '.folderName' info.json

чтобы скопировать файл, который я могу использовать:

cp ~/foo.js /<folderName>/foo.js

Цель состоит в том, чтобы создать: /berlin/foo.js

Но как я могу динамически переименовать путь, используя значение berlin из файла JSON? Желательно в одной команде?

1 ответ

Решение

Вы можете использовать подстановку команд

cp ~/foo.js /$(jq '.folderName' info.json)/foo.js

Поскольку строки JSON заключаются в кавычки по умолчанию (если jq используется с -r флаг необработанного вывода), нет необходимости заключать в кавычки $(...) в этом случае.

Другие вопросы по тегам