欢迎各位兄弟 发布技术文章
这里的技术是共享的
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
。