递归 mkdir - 文件夹存在但用户对其没有权限

递归 mkdir - 文件夹存在但用户对其没有权限

我正在尝试通过 ssh 递归创建目录。

目录/主页/用户/暂存存在。但用户无权读取/家. mkdir 不知道/主页/用户存在并尝试创建它。

mkdir -p /home/user/staging/first/second/third/fourth/
mkdir: cannot create directory ‘/home/user’: Permission denied

如何跳过该目录并继续在用户有权限的地方创建?

我正在尝试用自己的脚本来做这件事,

rec()
{
    dir=$1
    if [[ ! -e $dir ]]; then
        echo "creating $dir"
        newdir=$(echo $dir | sed 's:/[^/]*$::')
        rec $newdir
        mkdir $dir
    fi
}

由于某种原因,这次检查失败如果 [[ !-e $dir ]] 循环向下经过现有目录并最终不创建任何东西。

答案1

我没能使这个脚本运行起来。

但是解决方案是使用 rsync 本身的 --relative 选项。

rsync -a --relative /new/x/y/z/ user@remote:/pre_existing/dir/

正如这个答案所述: https://stackoverflow.com/a/22908437/6505678

相关内容