Se o shell de login de abc
em xyz
for zsh
:
ssh abc@xyz 'cd /tmp && tar cf - ./*.doc(.LM-100om[1,3]) | gzip -3' |
gunzip | tar xvf -
Se não for zsh
(mas zsh
está instalado):
ssh abc@xyz "cd /tmp && exec zsh -c 'tar cf - ./*.doc(.LM-100om[1,3]) | gzip -3'" |
gunzip | tar xvf -
Em qualquer caso, esteja ciente de que /tmp
(ou qualquer diretório gravável do mundo) é um campo minado. Acima, somos cuidadosos o suficiente para selecionar apenas arquivos regulares menores que 100 MiB (com (.LM-100)
) e tar
não seguirá links simbólicos nem lerá o conteúdo de dispositivos ou pipes nomeados, mas ainda há uma condição de corrida em que alguém poderia ampliar um arquivo para vários tebibytes entre esse glob sendo expandido e o comando tar
sendo executado.
E, é claro, qualquer um poderia colocar malware com uma extensão .doc
em /tmp
, então você precisaria tratar esses arquivos de download com muito cuidado.
Seria melhor fazer isso no diretório privado em vez de /tmp
.