我正在使用lftp从外部服务器镜像文件,但是现在我需要的是在成功下载后重命名源目录(在远程服务器上)。基本上,我需要打开远程服务器列表目录上的连接,下载所有名称从“todo”开始的目录,即todo.20121019。成功后,我必须将下载的目录重命名为“done.20121019”。服务器上可能有多个目录。

远程FTP服务器仅适用于 Activity 连接。

#!/bin/bash

directories=`lftp -f lftp_script_file.lf |grep done|awk '{print $NF}'`

for i in $directories
  do
    echo $i //here I get list of directories that should be downloaded and renamed
  done

lftp_script_file.lf仅列出目录:
set ftp:passive-mode false;
open ftp://user:[email protected]
ls my_sub_dir/

有没有办法:
  • 打开与ftp服务器的连接
  • 查找要下载的目录
  • 将这些目录添加到队列中并下载
  • 重命名远程服务器上的目录

  • 在批处理文件中?

    我想要达到的目的是列出dirs以找到感兴趣的目录,下载并重命名,但是我找不到通过bash脚本将dirs列表发布到lftp的方法,并且“set ftp:passive-mode false”。

    最佳答案

    为了能够将变量替换为lftp命令,请使用以下命令:

    lftp -e "cmd1;cmd2"
    

    关于linux - lftp + bash脚本+变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12982750/

    10-11 05:04