Linux利用ftp命令上传下载文件
Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹。虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器、SSH、远程会话中掌握命令行ftp的使用还是很有必要的。
ftp命令
使用格式:ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [computer]
-v:禁止显示远程服务器响应信息
-n:禁止自动登录
-i:多文件传输过程中关闭交互提示
-d:启用调试,显示所有客户端与服务器端传递的命令
-g:禁用文件名通配符,允许在本地文件和路径名中使用
实例:ftp 122.122.122.122 2222
输入用户名、密码,即可完成登录。
目录操作
FTP命令可以列出、移动、创建文件夹。
- ls -- 打印目录列表
- !ls -- 查看本地目录
- cd -- 改变目录
- mkdir -- 创建文件夹
使用FTP下载文件
在下载一个文件之前,首先需要使用lcd命令设定本地接收目录位置。
- lcd -- 指定下载目录
- get file.txt [file_new.txt] -- 下载文件 支持更改名字
- mget *.txt -- 使用mget + 通配符下载多个文件
使用FTP上传文件
- lcd -- 指定即将上传的文件,所在的本地目录。
- put file.txt [file_new.txt] -- 上传文件 支持更改名字
- put /home/data/cwh/file.txt -- 绝对路径
- mput *.txt -- 上传多个文件
关闭FTP连接
完成FTP工作后,为了安全起见需要关闭连接。有3个命令可以关闭连接:
- bye -- 关闭连接
- exit -- 关闭连接
- quit -- 关闭连接
- close -- 关闭连接
其他命令
- ? -- 查询ftp命令
- help -- 查询ftp命令
- open [ftp server name] -- 和指定的远程Linux FTP服务器连接
- user [user name] [password] -- 使用指定远程Linux FTP服务器的用户登录
- pwd -- 显示当前路径
- ls -- 列出目录和文件
- dir -- 列出目录和文件(同上)
- mkdir [foldname] -- 创建指定目录
- rmdir [foldname] -- 删除指定目录
- cd -- 切换目录
- delete [filename] -- 删除文件
- rename [filename] [newfilename] -- 重命名
- close -- 关闭连接 但保留FTP命令参数提示
- disconnect -- 关闭连接 但保留FTP命令参数提示(同上)
- bye -- 结束连接
- quit -- 结束连接
- ! -- 直接从远程Linux FTP进入到本地Shell中
- exit -- (接上步)从本地Shell环境返回远程Linux FTP中
- !ls -- 列出本地机器目录和文件
- lcd [foldname] -- 更改本地工作目录
- binary -- 使用二进制传输文件
- prompt -- 切换提示(使用mput或mget上传下载多个文件时避免提示)
- case -- 在使用mget时,将远程主机文件名的大写转换为小写字母
- cdup -- 进入远程主机目录的父目录
- system -- 显示远程主机的操作系统类型
- hash -- 每传输1024字节,显示一个hash符号(#)
- status -- 显示当前ftp状态
一个完整的shell脚本
文件上传脚本
#!/bin/bash
#by anding 20200620
#for upload UBF function putftp
{
Pass='xxxxxxxxxxx'
ftp -n 10.254.104.23 21 <<!
user mcb3tran $Pass
bin
#对端目录
cd /opt/cbbs/pcs/all/data/outgoing
put $1
bye
!
} # 日志定义
log_date="$(date +'%Y%m%d')"
log_dir="$HOME/log/$log_date/upload"
log_file="$log_dir/put_%s_${log_date}.log" date1=`date +%Y%m`
month1=`date -d "2 month ago" +%Y%m` file="SM"$month1"000.931" #生成文件,调用606接口生成文件
tpssreceive -i 606
sleep 20 #处理文件目录--本地
cd /jsyy/tpss/jt_upload/SM_temp
file1=`ls /jsyy/tpss/jt_upload/SM_temp/*$date1*`
sed -i s/$date1/$month1/g $file1
cat $file1>$file #文件校验
count1=`diff $file1 $file |wc -l`
if [ $count1 -gt 0 ]; then echo "====================文件复制出错,请检查!!!!====================="
else echo "===================上传文件中================"
rm $file1
fi #上传文件
putftp $file echo `date +"%Y/%m/%d %H:%M:%S"`" 上传${file1}文件成功" &>$(printf "$log_file" "SM")
mv $file1 BAK_$file1
Linux利用ftp命令上传下载文件的更多相关文章
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- linux利用scp远程上传下载文件/文件夹
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度. 当你服务 ...
- linux利用sh脚本上传下载文件到ftp服务器
####本地的/app/awsm/csv2 to ftp服务器上的/awsm/#### #!/bin/sh export today=`date +%Y-%m-%d` ftp -v -n 10.116 ...
- 【ARM-LInux开发】利用scp 远程上传下载文件/文件夹
利用scp 远程上传下载文件/文件夹 scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o s ...
- Linux 终端访问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...
- Linux 终端訪问 FTP 及 上传下载 文件
今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...
- Linux 终端访问 FTP 及 上传下载 文件[转]
1. Linux 终端连接FTP [oracle@Dave ~]$ ftp 10.85.7.97 Connected to 10.85.7.97. 220 Serv-U FTP Server ...
- Linux 普通用户拿到root权限及使用szrz命令上传下载文件
1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...
- linux使用命令上传下载文件 -- lrzsz
之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...
- shell通过ftp实现上传/下载文件
直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...
随机推荐
- linux终端如何加上时间,添加时间戳到终端提示?
方法: 在 .bashrc 文件中加入: export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] " 这样便可以在每次输入命令 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-63 - Canvas和SVG元素定位
1.简介 今天宏哥分享的在实际测试工作中很少遇到,比较生僻,如果突然遇到我们可能会脑大.懵逼,一时之间不知道怎么办?所以宏哥这里提供一种思路供大家学习和参考. 2.SVG简介 svg也是html5新增 ...
- 用户案例 | Apache DolphinScheduler 离线调度在自如多业务场景下的应用与实践
用户案例 | 自如 随着自如业务的快速发展,不断增长的调度任务和历史逾万的存量任务对平台稳定性提出了更高的要求.同时,众多非专业开发人员也需要一种更为"亲民"的调度平台使用体验. ...
- 由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制
由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制 目录 由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制 一,线程的生命周期 ...
- 9个Linux 查看系统硬件信息命令(实例详解)
在Linux下,我们精要遇到需要查看系统的硬件信息, 这里我罗列了查看系统硬件信息的实用命令,并做了分类,实例解说. 执行环境:ubuntu 16.04 1. cpu lscpu命令,查看的是cpu的 ...
- .net framework创建Nuget包简要教程
前言 nuget包生成在.net framework和.net core/.net standard下的是不同的. .net framework中稍微复杂些,下面记录了我自己在.net framewo ...
- APT 使用
使用 Ubuntu 包搜索器 apt 命令 功能 apt install 安装软件包 apt remove 移除软件包 apt purge 移除软件包及配置文件 apt update 刷新存储库索引 ...
- 【图文教程】Centos单机安装Redis
1.1.安装Redis依赖 Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖: yum install -y gcc tcl 1.2.上传安装包并解压 例如,凯哥将其放到 ...
- QT原理与源码分析之QT对象类型QObject源码中的间接的设计思想
这一篇文章介绍QT框架中QT对象类型QObject类型的源代码在设计上的一个比较优秀的设计思想. QObject类型定义 QObject 直接来看QObject的源代码.为了表达更简洁更直观,这里省略 ...
- C语言实现面向对象方法学的GLib、GObject-初体验
0. 扫盲: GLib是用C写的一些utilities,即C的工具库,和libc/glibc(GNU C Library)没有关系. GLib是 Gtk+ 库和 Gnome 的基础.GLib可以在多个 ...