欢迎各位兄弟 发布技术文章
这里的技术是共享的

macos sudo mkdir aaa 与 mkdir aaa 区别
在 macOS(或任何 Unix-like 系统)中,sudo mkdir aaa 和 mkdir aaa 的主要区别在于 执行权限和创建的目录归属权。以下是具体差异:
mkdir aaa
以当前用户的权限执行。如果当前用户对目标路径没有写入权限(例如在 /system、/Library 等系统目录),命令会失败并报错:mkdir: aaa: Permission denied
sudo mkdir aaa
通过 sudo 以 root 超级用户权限执行,可以绕过普通用户的权限限制,在系统的任何位置创建目录(需输入管理员密码)。
mkdir aaa
创建的目录所有者是当前用户,组也是当前用户所属的默认组(例如 staff 或 wheel)。
sudo mkdir aaa
创建的目录所有者是 root,组也是 wheel(或其他 root 默认组)。这可能导致普通用户无法修改或删除该目录,后续可能需要通过 chown 或 chmod 调整权限。
无需 sudo
如果在用户有权限的目录(如 ~/Desktop、/tmp 或用户主目录)下操作,直接使用 mkdir 即可。
需要 sudo
在系统级目录(如 /usr/local、/etc)或受保护的路径中创建目录时,必须使用 sudo。
bash# 在用户主目录下(无需 sudo) $ mkdir ~/aaa # 成功,所有者是当前用户 # 在系统目录下尝试(需 sudo) $ mkdir /usr/local/aaa # 失败,权限不足 $ sudo mkdir /usr/local/aaa # 成功,所有者是 root
滥用 sudo 可能带来安全风险,仅在必要时应谨慎使用。
如果目录已存在,两者均会报错:mkdir: aaa: File exists。
建议根据实际需求选择合适的方式:能用普通权限完成时,尽量不使用 sudo。