Как скопировать файл в определенный каталог, не зная конечного имени, из док-контейнера (glob не работает)

Создание логического тома непосредственно над физическим томом не дало бы большого преимущества по сравнению с простым разбиением диска на разделы и свело бы на нет одну из наиболее полезных функций LVM — объединение нескольких физических томов в одну группу томов.

Например, вы можете сгруппировать три физических диска по 100 Гб каждый в одну виртуальную группу, а затем создать из нее том на 300 Гб (как LV ). Или два тома по 150 Гб.

1
02.05.2019, 22:19
1 ответ

Почему не работает

В вашем коде docker cp $CONTAINERID:/tmp/[folder-]*/file /other/pathвы используете glob(*). Глобы расширяются оболочкой, но ваша оболочка не знает о файлах в контейнере. Ваша текущая конфигурация вашей оболочки заключается в том, чтобы оставить *в имени файла, как если бы это был обычный символ. Затем Docker сообщает вам, что …/folder-*/…не может быть найден.

Что делать

Они не проверены, пожалуйста, проверьте.

files="$(docker exec «container» bash -c "echo /folder-*/file")" #does not deal with spaces, etc.
do something with "$files"

или

docker exec «container» bash -c 'for f in *; do printf "%s\0" "$f"; done' | \
xargs -0 --no-run-if-empty cp -t "/other/path"
1
27.01.2020, 23:41

Теги

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