为什么“mkdir -p”会导致Bash权限错误?

时间:2012-07-15 17:43:42

标签: bash permissions mkdir

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

$ mkdir -p test2/test2

$ cd test2/test2

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

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

2 个答案:

答案 0 :(得分:7)

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

chmod +x hello.sh

答案 1 :(得分:1)

检查您的权限

检查目录和脚本本身的权限。可能存在问题,尽管不太可能。

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

如果由于某种原因未正确设置权限,则始终可以将 - 模式标记与 mkdir 一起使用。有关更多信息,请参阅chmod(1)和mkdir(1)。

直接执行文件

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

bash test2/test2/hello.sh

更改文件权限

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

chmod 755 test2/test2/hello.sh