Copie pastas específicas via lftp

0

Eu quero copiar dados usando o login lftp do servidor. Aqui está o meu comando para copiar todos os dados.

lftp -u uid,pwd -e 'mirror -c /home/dcr96/TCGA' sftp://[email protected]

Isso copia os dados do sftp para o diretório local. No entanto, quero copiar somente pastas específicas, que estão em uma lista. Como devo fazer isso?

    
por Ron 03.05.2017 / 20:23

1 resposta

0

Você pode simplesmente usar mais de um comando de espelhamento como este:

lftp -u uid,pwd \
  -e 'mirror -c /home/dcr96/TCGA/dir1; mirror -c /home/dcr96/TCGA/dir2; exit;' \
  sftp://[email protected]

Então, tudo que você precisa é de algum código shell que produza tal linha de comando na sua lista.

Você também pode gerar esse script lftp, que pode ser mais fácil de revisar e depurar antes de executar.

#!/usr/bin/lftp -f
open -u uid,pwd serapeum2.qib.pbtech
cd /home/dcr96/TCGA

# auto-generated from the list
mirror -c dir1
mirror -c dir2
# ...

exit

Observe que o comando mirror aceita um diretório de destino local. Você precisaria disso para manter os caminhos completos no caso de caminhos mais longos:

mirror -c path/to/dir1 path/to/dir1
    
por 04.05.2017 / 00:22