相关疑难解决方法(0)

如何解析shell脚本中的符号链接

给定绝对或相对路径(在类Unix系统中),我想在解析任何中间符号链接后确定目标的完整路径.奖励积分也可以同时解析〜用户名表示法.

如果目标是目录,则可以将chdir()放入目录然后调用getcwd(),但我真的想从shell脚本而不是编写C帮助程序.不幸的是,shell倾向于试图隐藏用户的符号链接(这是OS X上的bash):

$ ls -ld foo bar
drwxr-xr-x   2 greg  greg  68 Aug 11 22:36 bar
lrwxr-xr-x   1 greg  greg   3 Aug 11 22:36 foo -> bar
$ cd foo
$ pwd
/Users/greg/tmp/foo
$
Run Code Online (Sandbox Code Playgroud)

我想要的是一个函数resolve(),这样当从上例中的tmp目录执行时,解析("foo")=="/ Users/greg/tmp/bar".

bash shell scripting symlink

211
推荐指数
7
解决办法
15万
查看次数

docker 容器在启动期间无法打开卷挂载中的符号链接文件

我有一个使用 docker-compose.yml 启动的 docker 容器,其中包含

service: my-service
  volumes:
  - /tmp/mount/opt/my-app:/opt/my-app
Run Code Online (Sandbox Code Playgroud)

/tmp/mount/opt例如,有符号链接/tmp/mount/opt/my-app/test1.cfg指向/host/path/test1.cfg

当容器启动时,它会失败并显示如下错误:

my-service | Failed to stat config file "/opt/my-app/test1.cfg": No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,如果我docker exec -ti the_same_container bash然后cat /opt/my-app/test1.cfg我看到的正是预期的内容。

另外,如果在主机上运行cp -r -L /tmp/mount /tmp/mount_copy并修改 yml

service: my-service
  volumes:
  - /tmp/mount_copy/opt/my-app:/opt/my-app
Run Code Online (Sandbox Code Playgroud)

然后一切正常。

换句话说,挂载目录中的符号链接可以在容器启动后被容器读取,但在启动期间则不能读取,并且挂载该目录的非符号链接克隆就可以了。

为什么符号链接在 docker 中会有这样的行为?

linux docker

7
推荐指数
1
解决办法
6338
查看次数

符号链接主机到Docker容器

好吧,基本上我想从我的主机到我的容器创建一个符号链接"ln -s".

总结一下:主机的主机文件夹.m2必须有一个指向我容器内的.m2文件夹的符号链接,例如:$ ln -s containerIp:/root/.m2 myContainerAlias

我已经看过下面的帖子,但他们没有帮助我,因为我不想将文件复制到我的本地主机.

Docker - 将文件从容器复制到主机

Docker中的Apache说:不允许使用符号链接

https://omarabid.com/symlink-to-a-mounted-volume-in-docker/

编辑:

我在这里找到了另一个有价值的问题:

如何将docker容器中的目录挂载到主机? 谢谢...

symlink docker

5
推荐指数
1
解决办法
7551
查看次数

标签 统计

docker ×2

symlink ×2

bash ×1

linux ×1

scripting ×1

shell ×1