1

我有一个小问题。基本上这个问题是微不足道的,但我的解决方案似乎不起作用。

我想出的脚本是这样的:

  1. 您将目录作为 $1 参数传递。例如:./script.sh /Desktop/folder1/folder1submap/myfolder
  2. 如果结构 /folder1/folder1submap/myfolder 不存在,我必须创建它。这里没有问题,但是问题出现了,因为我必须首先检查该位置是否可写。我正在使用 [ -w "target" ] 命令对此进行测试,但它不起作用,因为如果文件夹不存在,则 -w 始终为 false。在我的情况下,它没有。

    解决方案:是的,我可以检查父文件夹是否可写,但你不知道你是否会得到例如:/Desktop/folder1 或类似 /Desktop/folder1/folder2/folder3/folder4/folder5/ 所以我不能尽可能轻松地检查父文件夹的权限。准确地说,如果我从用户那里得到任意长路径,我就无法知道哪个目录是父目录。

4

1 回答 1

1

一种选择是使用以下dirname命令:

if [ ! -d "$1" ] && [ -w "$(dirname $1)" ]; then 
    mkdir "$1"
fi
于 2013-04-29T14:39:03.850 回答