【问题标题】:Why might "mkdir -p" lead to a Bash permission error?为什么“mkdir -p”会导致 Bash 权限错误?
【发布时间】:2012-07-14 16:50:54
【问题描述】:

如果我使用mkdir -p 创建目录,则会导致脚本出现问题

$ mkdir -p test2/test2

$ cd test2/test2

$ echo '#!/bin/sh
> echo hello' > hello.sh

$ ./hello.sh
bash: ./hello.sh: Permission denied

【问题讨论】:

    标签: bash permissions mkdir


    【解决方案1】:

    这与mkdir 无关。您根本没有授予hello.sh 可执行权限。您需要以下内容:

    chmod +x hello.sh
    

    【讨论】:

      【解决方案2】:

      检查您的权限

      检查您的目录和脚本本身的权限。那里可能有问题,尽管可能性不大。

      ls -lad test2/test2
      ls -l test2/test2/hello.sh
      

      如果由于某种原因您的权限设置不正确,您始终可以将 --mode 标志与 mkdir 一起使用。有关详细信息,请参阅 chmod(1) 和 mkdir(1)。

      直接执行文件

      只要当前用户可以读取文件,就可以直接使用 Bash 执行脚本,而不是依赖 shebang 行或可执行位。例如:

      bash test2/test2/hello.sh
      

      更改文件权限

      如果您可以在使用 Bash 显式调用时执行文件,那么您只需要确保您的文件设置了执行位。例如:

      chmod 755 test2/test2/hello.sh
      

      【讨论】:

        猜你喜欢
        • 2015-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-24
        • 2012-05-04
        • 2020-07-16
        • 2014-06-05
        • 1970-01-01
        相关资源
        最近更新 更多