![以另一个用户身份创建目录和子目录](https://linux22.com/image/82499/%E4%BB%A5%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%E5%92%8C%E5%AD%90%E7%9B%AE%E5%BD%95.png)
我正在尝试以另一个用户的身份从 shell 脚本内部创建目录和子目录。
问题是,我正在运行脚本root
,因此正在使用所有权创建目录。我root
有一个包含目录和子目录名称的文本文件,我正在使用以下命令来执行此操作:
cat dirname.txt | xargs -L 1 mkdir
看起来像这样:
cet/mnt
cet/mnt/jkl
cet/mnj/lok
我尝试过sudo
,但只有父目录获得所需的用户所有权。
答案1
为什么不像下面这样呢?
user="foo"
group="bar"
perm=741
for dir in $(cat dirname.txt); do
mkdir ${dir}
chown ${user}:${group} ${dir}
chmod -R ${perm} ${dir}
done
我发现最好利用变量来使未来的更改变得更容易。迭代目录列表而不是单行也更容易维护
答案2
尝试类似的方法:
cat dirName.txt | xargs -L 1 sudo -u ubuntu mkdir -p