#!/bin/bash
#作者:魏波
#时间:2017.02.04
if [ $# -ne 1 ]; then
echo "Usage: $0 filename"
fi
dir=$(dirname $1)
file=$(basename $1)
echo "$dir"
echo "$file"
ftp -n -v << EOF
open 192.168.1.10 # ftp服务器
user admin password
binary
cd ”$dir“
get "$file"
EOF
说明:
1、if [ $# -ne 1 ]
$#:添加到Shell的参数个数
-ne:不等于
2、dir=$(dirname $1)、file=$(basename $1)
$1:脚本的第一个参数
dirname:取目录
basename :去除目录后剩下的名字
3、ftp -n -v
-n :不要自动登录
-i:且关闭交互模式
-v 把交互式的信息提示显示出来
4、binary
设置ftp传输模式为二进制,避免MD5值不同或.tar.gz压缩包格式错误
5、ftp get
get一次只下载一个文件;mget一次可以下载多个文件,而且支持通配符,需要注意的是在mget的时侯,需要对每一个文件都选择y/n,如果想不交互的下载全部的文件,可以先用prompt命令关掉交互方式(关闭:prompt off;打开:prompt on)
6、补充:获取当前执行脚本路径
#!/bin/bash
CURRENT_DIR="$(cd "$(dirname "$0")"; pwd)"
echo $CURRENT_DIR