使用' *'在docker exec命令

时间:2018-06-07 13:46:24

标签: linux windows docker containers system

我正在尝试在运行docker容器中运行特定命令。

 Docker exec -t t1 ls /tmp/sth/*

作为回报,我收到了

 ls: cannot access '/tmp/sth/*': No such file or directory

实际上当我在容器内执行命令时一切正常。 Container正在使用Debian,而本地机器正在使用Windows。我试图找到它,但不能。

1 个答案:

答案 0 :(得分:3)

如果你想在容器中使用shell 来扩展你的glob,你需要......好吧......实际上在容器内运行一个shell。容器外部的文件无法看到容器内的文件(当然),因此它会传递ls文字模式,而不是您想要的目录中的文件列表。

因此:

docker exec -t t1 sh -c "ls /tmp/sth/*"

...请注意,我通常会使用单引号作为命令,但由于您的主机是Windows,因此使用双引号,因为它们更有可能使用cmd.exe