You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多个用户的主目录批量创建new_dir目录?

批量为多个用户主目录创建新目录的方法

完全不用逐个登录用户这么麻烦!用简单的Shell循环或者批量命令就能搞定,前提是你当前登录的用户拥有sudo权限(毕竟要操作其他用户的主目录嘛)。下面给你两种实用方法:

方法1:精准循环(推荐,适配所有主目录路径)

这个方法会先自动获取每个用户的实际主目录路径,避免硬编码路径出错(比如有些用户主目录可能不在/home下),还会检查主目录是否存在,非常稳妥:

for user in user{1..20}; do
    # 获取用户的主目录路径
    homedir=$(getent passwd "$user" | cut -d: -f6)
    # 检查主目录是否存在
    if [ -d "$homedir" ]; then
        # 创建new_dir,-p参数确保目录已存在时不报错
        sudo mkdir -p "$homedir/new_dir"
        # 把目录权限改成对应用户所有,不然默认是root权限,用户没法正常使用
        sudo chown "$user:$user" "$homedir/new_dir"
        echo "已为用户 $user 创建目录 $homedir/new_dir"
    else
        echo "⚠️ 警告:用户 $user 的主目录 $homedir 不存在,跳过该用户"
    fi
done

为什么推荐这个?

  • getent passwd是查询系统用户信息的标准方式,比直接写/home/$user更可靠,能适配各种系统配置
  • 加了主目录存在检查,避免无效操作和报错
  • 自动修正权限,确保用户能正常读写新目录

方法2:简化版循环(适用于主目录都在/home的场景)

如果你确定所有20个用户的主目录都在/home下,可以用更简洁的命令一次性完成:

# 批量创建目录
sudo mkdir -p /home/user{1..20}/new_dir
# 批量修改权限
sudo chown -R user{1..20}:user{1..20} /home/user{1..20}/new_dir

注意点

这个方法虽然快,但如果某个用户的主目录不在/home,就会创建一个错误的空目录,所以只适合你明确知道所有用户主目录路径的情况。

关键前提

不管用哪种方法,你当前登录的用户必须有sudo权限——毕竟要操作其他用户的私有目录,没有管理员权限的话这些命令都会执行失败,这时候就得联系系统管理员帮忙啦。

内容的提问来源于stack exchange,提问作者Deeraj Theepshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:47:29