【问题标题】:mkdir -p cannot create directory `/DirName': Permission denied [closed]mkdir -p 无法创建目录`/DirName':权限被拒绝 [关闭]
【发布时间】:2012-11-19 15:32:32
【问题描述】:

我正在尝试在 shell 脚本中创建一个目录:

mkdir -p 目录名

但我总是遇到同样的错误: 无法创建目录`/DirName':权限被拒绝

如果我直接从 shell 运行相同的命令而不是使用脚本,那效果很好。

有什么想法吗?

谢谢! :)

【问题讨论】:

  • 检查您当前的目录权限。好像您正在 / [root] 中创建,并且只有 root 可以在那里创建。 [脚本应以 root 身份运行]。你应该用谷歌搜索这个
  • 是的,我用谷歌搜索了它,但我尝试的所有解决方案都不起作用。总之感谢。我会再试一次。
  • 检查您尝试运行的脚本的权限。
  • 错误消息暗示您正在尝试执行与mkdir -p DirName 不同的mkdir -p /DirName。前者尝试在文件系统根目录中创建一个目录(除非以根用户身份运行,否则您可能没有写入权限)。后者在当前工作目录中创建一个director。
  • 如果您在脚本中使用 var 指定目录名称,请确保引用您的 var,否则如果您的目录名称中有空格,您可能会得到意外结果。

标签: shell permissions mkdir


【解决方案1】:

如果要使用 -p 选项,则需要指定完整路径

mkdir -p /some/path/here/DirName

我建议列出完整路径(如果您计划使用 shell 脚本更改位置)。

如果你的 shell 脚本不会改变位置(你以后不会把它移到其他地方),我会使用:

mkdir ./DirName

这些都应该与您在 shell 中创建目录的行为相似。

【讨论】:

  • 我已经在使用所有路径:mkdir -p /home/username/Documents/DirName
  • 根目录下是否已经存在 /home/username/Documents/ ?
  • 对我来说 mkdir -p some/path/here 有效,但 mkdir -p /some/path/here 无效。
【解决方案2】:

您试图在文件系统的根目录 (/DirName) 而不是在当前目录 (Dirname./Dirname) 中创建一个目录。您无权写入根目录。

【讨论】:

  • 好吧,实际上我的脚本给出了所有路径:mkdir -p /home/username/Documents/folder1/dirName
  • 对我来说 mkdir -p some/path/here 有效,但 mkdir -p /some/path/here 无效。
猜你喜欢
  • 2018-08-15
  • 1970-01-01
  • 2021-12-11
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
相关资源
最近更新 更多