我想使用lftp登录从服务器复制数据。这是我复制所有数据的命令。
lftp -u uid,pwd -e 'mirror -c /home/dcr96/TCGA' sftp://[email protected]
这会将数据从 sftp 复制到本地目录。但是,我只想复制列表中的特定文件夹。我该怎么做呢?
答案1
您可以简单地使用多个镜像命令,如下所示:
lftp -u uid,pwd \
-e 'mirror -c /home/dcr96/TCGA/dir1; mirror -c /home/dcr96/TCGA/dir2; exit;' \
sftp://[email protected]
因此,您所需要的只是一些从列表中生成此类命令行的 shell 代码。
您还可以生成这样的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 命令接受本地目标目录。如果路径较长,您将需要它来保留完整路径:
mirror -c path/to/dir1 path/to/dir1