Копирование всех файлов с одного тома докера на другой с использованием подстановочных знаков?

Это работает, потому что это копирование some_file:

docker run --rm -v target-data:/target -v ~/source:/source alpine cp source/some_file target/

Это не (с использованием подстановочного знака):

docker run --rm -v target-data:/target -v ~/source:/source alpine cp source/* target/
cp: can't stat 'source/*': No such file or directory

Как скопировать все файлы в souce объем до target объем?

1 ответ

Решение

Дело в том, кто это расширяет *:

docker run --rm -v target-data:/target -v ~/source:/source alpine sh -c 'cp -r source/* target/'

Тебе нужен кто-то (sh) расширить * до запуска программы (это то, что делает оболочка перед exec cp)

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