我正在尝试通过 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/