我只是在解决一个问题,我想在远程计算机上创建一个目录树,其中所有目录都具有特定的组所有权。此外,我明确希望自动生成父目录(如果尚不存在)。所以我现在尝试做的是:
ssh me@remotemachine "newgrp mygroup && mkdir -p /path/to/my/directory"
newgrp
但是,通过 SSH 在远程计算机上执行似乎不起作用。
当然,另一个选择可能是先创建目录,然后更改组所有权,但这需要我知道哪些父目录是-p
通过mkdir
.
那么有没有办法通过 SSH 作为特定组的成员而不是作为远程计算机上默认组的成员登录,或者让 mkdir 告诉我它自动创建的父目录?
答案1
newgrp
启动一个新的外壳,所以在你的命令中
ssh me@remotemachine "newgrp mygroup && mkdir -p /path/to/my/directory"
mkdir
将从 启动的子 shell 退出后执行newgrp
。
您可以将命令作为newgrp
shell 的输入,例如
ssh me@remotemachine newgrp mygroup << EOF
mkdir -p /path/to/my/directory
ls -ld /path/to/my/directory /path/to/my
EOF
答案2
您可以使用install
命令:
ssh me@remotemachine "install -g mygroup -d /path/to/my/directory"