我正在使用ubuntu xenial base运行一个奇点容器。
当我尝试使用从echo命令重定向到文件系统来创建文本文件时,重定向的目标被解释为在主机上而不是在容器上。
以下是命令 -
singualrity exec ubuntu_xenial_image.img echo "test" >> /mnt/test.txt
它不是在名为/ mnt的容器文件夹中创建文件test.txt,而是尝试将test.txt文件写入主机根文件夹/mnt/test.txt,从而导致 - 没有权限错误,因为很明显我没有写入主机根文件夹的权限。
你知道为什么重定向转到主机文件系统而不是容器文件系统,因为singularity exec命令应该工作吗?
完整的命令,因为它被写入分为
singularity exec ubuntu_xenial_image.img echo "test"
对于容器,输出重定向到主机文件系统中的>> /mnt/test.txt。
纠正它
$ singularity exec ubuntu_xenial_image.img sh -c "echo" test ">> /mnt/test.txt"
因此,完整的命令将由容器内的sh解释。
除此之外,您还需要验证/ mnt目录的写权限,或使用sudo执行。