【问题标题】:script fails when "mv" clubbed with "ftp"当“mv”与“ftp”结合时脚本失败
【发布时间】:2014-02-25 09:47:08
【问题描述】:

我尝试在脚本文件中包含一个带有 ftp 命令的 mv 命令。但是当我运行该脚本文件时,它在 mv 命令上失败了。

代码:

/usr/bin/ftp -i -n $HOST <<END_FTP
quote USER $USER
quote PASS $PASSWD
cd /home/infodba/temploc/test_script/
binary
mget Cust*.txt
mv Cust*.txt ./archive
quit
END_FTP

exit 0

它抛出这个错误:“?无效命令”

如果我从文件中删除 mv 命令,同样的脚本会起作用

有解决办法吗?

【问题讨论】:

    标签: shell unix ftp mv


    【解决方案1】:

    mv 不是有效的 ftp 命令。如果您尝试将刚刚获取的文件移动到 ./archive,则需要先退出 ftp,或者使用 ! 转义命令。

    !mv Cust*.txt ./archive

    【讨论】:

    • 我实际上打算在远程机器上移动文件,而不是本地
    • 如果你想移动远程文件,使用ssh登录远程主机并将远程文件scp到目标/本地机器并移动远程主机中的文件。
    • 那你在ftp里就不行了。我想您可以 mput 您刚刚获取的文件,但这效率低得离谱。您需要改为“ssh”到远程服务器。
    【解决方案2】:
    ftp/sftp 不支持

    mv 命令(即您不能移动远程主机中的文件,但是使用 bang ( !) 您将能够执行您的命令本地主机。

    如果您尝试在以下本地主机中移动文件,则从远程主机获取文件后。

    /usr/bin/ftp -i -n $HOST <<END_FTP
    ...
    mget Cust*.txt
    !mv Cust*.txt ./archive
    ...
    ...
    END_FTP
    

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 2021-12-19
      • 2016-06-30
      相关资源
      最近更新 更多