![递归 mkdir - 文件夹存在但用户对其没有权限](https://linux22.com/image/1559127/%E9%80%92%E5%BD%92%20mkdir%20-%20%E6%96%87%E4%BB%B6%E5%A4%B9%E5%AD%98%E5%9C%A8%E4%BD%86%E7%94%A8%E6%88%B7%E5%AF%B9%E5%85%B6%E6%B2%A1%E6%9C%89%E6%9D%83%E9%99%90.png)
我正在尝试通过 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/