我需要从Unix中的远程主机获取文件.我正在使用该ftp命令.问题是我需要该位置的最新文件.这就是我这样做的方式:
dir=/home/user/nyfolders
latest_file=$(ls *abc.123.* | tail -1)
ftp -nv <<EOF
open $hostname
user $username $password
binary
cd $dir
get $latest_file
bye
EOF
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
(remote-file) usage: get remote-file [ local-file ]
Run Code Online (Sandbox Code Playgroud)
我想我试图从ftp命令中获取文件的方式是不正确的,有人可以帮帮我吗?
您不能在ftp命令脚本中使用shell功能,如别名,管道,变量等.
在ftp不支持使用任何语法等高级功能.
但是,您可以执行两步(在步骤之间使用shell功能).
首先获取远程目录到本地文件的列表(/tmp/listing.txt):
ftp -nv <<EOF
open $hostname
user $username $password
cd $dir
nlist *abc.123.* /tmp/listing.txt
bye
EOF
Run Code Online (Sandbox Code Playgroud)
查找最新文件:
latest_file=`tail -1 /tmp/listing.txt`
Run Code Online (Sandbox Code Playgroud)
并下载它:
ftp -nv <<EOF
open $hostname
user $username $password
binary
cd $dir
get $latest_file
bye
EOF
Run Code Online (Sandbox Code Playgroud)