我正在尝试以另一个用户的身份从 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