mkdir recursivo - a pasta existe mas o usuário não tem permissões

0

Estou tentando criar diretórios recursivamente por meio do ssh.

O diretório / home / user / staging existe. Mas o usuário não tem permissão para ler / home . O mkdir não sabe se o / home / user existe e tenta criá-lo.

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

Como pular este diretório e continuar criando onde o usuário tem permissão?

Estou tentando fazer isso com meu próprio script,

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

Por algum motivo, esta verificação falha se [[! -e $ dir]] e o loop desce além dos diretórios existentes e, eventualmente, não cria nada.

    
por TheKitMurkit 22.04.2018 / 10:05

1 resposta

0

Eu não consegui fazer este script funcionar.

No entanto, a solução é usar a opção --relative do próprio rsync.

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

Como descrito nesta resposta: link

    
por 22.04.2018 / 20:18