Eu tenho um diretório e o final do seu nome muda. Eu gostaria de poder copiar o arquivo contido neste diretório. Por exemplo, eu tenho este caminho (não sei qual é o nome do diretório depois -
, aqui está este exemplo ab
):
/tmp/folder-ab/file
Eu gostaria de copiar o arquivo.
Isso funciona fora do docker:
cp /tmp/folder-*/file /other/path/
Mas eu quero copiar de um contêiner docker, então tentei:
docker cp $CONTAINERID:/tmp/[folder-]*/file /other/path/
e obtive o seguinte erro:
Error response from daemon: lstat
/var/lib/docker/100000.100000/devicemapper/mnt/1ae07ffeda9e69465058ad01439543ab17a142d74668350b9185c1632cd7dec7/rootfs/tmp/folder-*/file:
no such file or directory
Por que não funciona
No seu código
docker cp $CONTAINERID:/tmp/[folder-]*/file /other/path
você usa um glob(*
). Globs são expandidos pelo shell, mas seu shell não conhece os arquivos no contêiner. Sua configuração atual do seu shell, é deixar o*
no nome do arquivo, como se fosse apenas um caractere normal. O Docker então informa que…/folder-*/…
não pode ser encontrado.O que fazer
Estes não foram testados, por favor, teste.
ou