通过lftp复制特定文件夹

通过lftp复制特定文件夹

我想使用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

相关内容