shell脚本中mkdir权限被拒绝

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本中mkdir权限被拒绝相关的知识,希望对你有一定的参考价值。

我在互联网上看到了类似的问题,但是我找不到与我遇到的问题完全相同的问题。很抱歉,如果这是重复的,但我一直试图找到答案大约一个小时才提出这个问题...

#!/bin/bash
echo "Enter path:"
read path
echo "Enter title:"
read title
mkdir -pv "${path}/${title}"

进出:

Enter path:
~/test
Enter title:
testing
mkdir: cannot create directory '/testing': Permission denied

然而,如果我跑

mkdir -pv ~/test/testing

无论是从终端还是硬编码到脚本中,它都可以正常工作。

我也尝试使用/ bin / mkdir,删除-p,删除mkdir调用周围的{}或“”等,但我无法让它工作。此外,该脚本具有所有权限(-rwxrwxrwx)。

任何帮助表示赞赏。谢谢!

答案

在你的脚本中,问题是~/test~没有扩展。因此,如果您再次检查,您将在当前目录中找到执行脚本的~目录。

以下是使用~扩展eval的示例:

$ cat dirtest.sh
#!/bin/bash
echo "Enter path: "
read my_dir
eval my_dir="$my_dir"
echo "Enter title: "
read title
mkdir -pv "${my_dir}/$title"
另一答案

看起来像mkdir: cannot create directory '/testing': Permission denied,〜/ test的查找不起作用,所以你实际上是在你的驱动器根目录中创建/testing,你不能作为普通用户。

我不知道bash变量中的那个〜缩写的解决方法,所以要么输入完整路径,要么搜索类似于变通方法的内容。

以上是关于shell脚本中mkdir权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

php mkdir权限问题

Ruby -FileUtils 创建目录,Windows 上的权限被拒绝问题

Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'

EACCES:权限被拒绝 mkdir ...尝试在节点项目中使用 docker 卷时

PHP mkdir:权限被拒绝问题

如何修复错误:mkdir():运行作曲家时权限被拒绝