Canalize rapidamente um diretório sobre ssh

Às vezes acho útil canalizar rapidamente o conteúdo do diretório para o ssh.
Uma vez que scpsó 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/