Às vezes acho útil canalizar rapidamente o conteúdo do diretório para o ssh.
Uma vez que scp
só permite copiar arquivos individuais, uma boa solução é simplesmente tar um diretório e enviar o arquivo resultante para ssh.
$ tar zcf - some_dir | ssh user@host 'tar zxf -'
Para extrair para outro lugar que não seja, ~
você pode especificar o caminho com -C
:
$ tar zcf - some_dir | ssh user@host 'tar zxf - -C /tmp/'
Observe que o diretório para o qual você está tentando extrair deve existir no servidor.
Para copiar de remoto para local, basta fazer o inverso:
$ ssh user@host 'tar zcf - some_dir' | tar zxf -
ou com -C
$ ssh user@host 'tar zcf - some_dir' | tar zxf - -C /tmp/