scp ou rsync analógico para cp -T (trata o destino como arquivo)

1

Com cp eu posso:

$ mkdir q
$ touch s
$ cp -T s q  # I need same effect with scp and/or rsync.
cp: cannot overwrite directory 'q' with non-directory
$ ls q

Como obtenho o mesmo efeito em um comando com scp e / ou rsync ? Ou seja Quando target é o diretório, desejo que ele saia com código de saída diferente de zero sem a transferência real de arquivos. Eu não quero que o arquivo s seja colocado no diretório q .

Claro, isso pode ser verificado separadamente. A questão é como fazer isso em um único comando. Particularmente, por causa da concorrência.

    
por George Sovetov 19.04.2018 / 19:25

2 respostas

0

Isso será interrompido se o diretório remoto em questão existir:

if ! ssh user@host "[[ -d /path/to/directory ]]"; then
    # do your scp or rsync
else
    echo "Remote location is a directory.  Aborting." 1&>2
    exit 1
fi

Se você quiser transformar isso em uma única linha, então:

ssh user@host "[[ -d /path/to/directory ]]" || <<scp or rsync>>
    
por 19.04.2018 / 19:47
0

Como opção:

ssh remote-server 'cat > /tmp/asd' < /tmp/qwe

Não é um parâmetro.

Exemplo:

$ ssh localhost 'cat > /tmp/oi' < /tmp/qwe ; echo $?
Authenticated to localhost ([::1]:22).
bash: /tmp/oi: Is a directory
Transferred: sent 2832, received 2548 bytes, in 0.0 seconds
Bytes per second: sent 60414.8, received 54356.2
1
$ ssh localhost 'cat > /tmp/asd' < /tmp/qwe ; echo $?                                                                                                                                                                     
Authenticated to localhost ([::1]:22).
Transferred: sent 2832, received 2496 bytes, in 0.0 seconds
Bytes per second: sent 62499.8, received 55084.5
0
$ ls -l /tmp/{qwe,asd,oi}                                                                                                                                                                                                 
-rw-r--r-- 1 george george    4 Apr 19 21:21 /tmp/asd
-rw-r--r-- 1 george george    4 Apr 19 21:19 /tmp/qwe

/tmp/oi:
total 0
    
por 19.04.2018 / 20:22

Tags