Скопируйте определенные папки через lftp

Я хочу скопировать данные, используя логин lftp с сервера. Вот моя команда скопировать все данные.

lftp -u uid,pwd -e 'mirror -c /home/dcr96/TCGA' sftp://rob2056@serapeum2.qib.pbtech

Это копирует данные из sftp в локальный каталог. Однако я хочу скопировать только определенные папки, которые есть в списке. Как мне это сделать?

0
03.05.2017, 22:21
1 ответ

Вы можете просто использовать несколько зеркальных команд, например:

lftp -u uid,pwd \
  -e 'mirror -c /home/dcr96/TCGA/dir1; mirror -c /home/dcr96/TCGA/dir2; exit;' \
  sftp://rob2056@serapeum2.qib.pbtech

Таким образом, все, что вам нужно, это какой-то шелл-код, который создает такую ​​командную строку из вашего списка.

Вы также можете сгенерировать такой lftp-скрипт, который будет легче просмотреть и отладить перед выполнением.

#!/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

Обратите внимание, что команда зеркала принимает локальный целевой каталог. Вам понадобится это, чтобы сохранить полные пути в случае более длинных путей:

mirror -c path/to/dir1 path/to/dir1
0
28.01.2020, 04:46

Теги

Похожие вопросы