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权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Ruby -FileUtils 创建目录,Windows 上的权限被拒绝问题
Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'