Eu resolveria o problema tar
e a transparência dos tubos ssh
. Um exemplo pode ser visto abaixo, o PC remoto é nomeado bar
. Antes do teste, eu criei três arquivos vazios /tmp/foo
executando ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}'
.
$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 c
O -T
sinalizador de tar
faz com que ele leia nomes de arquivos para compactar a partir do próximo parâmetro e -
significa a entrada padrão. Agora você só precisa inserir o nome dos arquivos nele, que podem vir ls
(como no exemplo) ou find
para tarefas mais complicadas. Com essa configuração, você pode sort
indicar a ordem exata em que os arquivos serão transmitidos através do SSH (nesse caso, os -r
arquivos classificados em ordem alfabética inversa). Ele -v
é adicionado apenas à final, descompactando tar
, para que o pedido seja visível.