Я хочу скопировать данные, используя логин lftp с сервера. Вот моя команда скопировать все данные.
lftp -u uid,pwd -e 'mirror -c /home/dcr96/TCGA' sftp://rob2056@serapeum2.qib.pbtech
Это копирует данные из sftp в локальный каталог. Однако я хочу скопировать только определенные папки, которые есть в списке. Как мне это сделать?
Вы можете просто использовать несколько зеркальных команд, например:
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