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 ########################################################## ...
随机推荐
- 实验室深度学习服务器崩溃——Oops: 0000 [#1] SMP NOPTI
这两天实验室的服务器总是崩溃,重启已经不能解决问题了,由于是跑深度学习的服务器,而且还是承接国家级项目的运行服务器,可以说是实验室的主要生产力了,给出报错的日志: Oct 16 09:42:33 ro ...
- Apache SeaTunnel 社区 3 月月报
各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 3 月月报来啦!这里将记录 SeaTunnel 社区每个月的重要更新,并评选出月度之星,欢迎关注. SeaTunnel 月度 Mer ...
- SMU Spring 2023 Trial Contest Round 9
A. Wrong Subtraction 在k次操作里, 将n的最后一位数减1,如果是0就去掉,模拟一下就好了. #include <bits/stdc++.h> //#define i ...
- 卧槽,牛逼!vue3的组件竟然还能“暂停”渲染!
前言 有的时候我们想要从服务端拿到数据后再去渲染一个组件,为了实现这个效果我们目前有几种实现方式: 将数据请求放到父组件去做,并且使用v-if控制拿到子组件后才去渲染子组件,然后将数据从父组件通过pr ...
- 搜索引擎用法 cheatsheet
逻辑 写法 与 keyword1 keyword2 或 keyword1 OR keyword2 限定关键词的排列 "keyword" 限定搜索的网站 site:cnblogs.c ...
- 编译器实现之旅——第十三章 if语句和while语句的代码生成器分派函数的实现
在上一章的旅程中,我们已经实现了表达式类代码生成器分派函数,而在这一章的旅程中,我们将要实现if语句和while语句的代码生成器分派函数.if语句和while语句是两种典型的带有跳转指令的语句.观察C ...
- 宝塔安装onlyoffice
1. 拉取镜像 docker pull onlyoffice/documentserver 2. 构建容器 进入宝塔管理面板->docker->镜像,可以看到镜像已被安装成功 配置容器参数 ...
- sql转JSON为表
创建方法 : /****** Object: UserDefinedFunction [dbo].[parseJSON] Script Date: 2017/7/11 18:27:28 ******/ ...
- WebGL 及其在 WebRTC 中的应用
一.前言 1.什么是 WebGL ? WebGL 的全称是 Web Graphics Library,是一种 3D 绘图协议. WebGL 允许把 JavaScript 和 OpenGL ES 2.0 ...
- CSS – Transform
前言 之前写的 W3Schools 学习笔记 (3) – CSS 2D Transforms. 这篇作为整理. 参考: Youtube – Learn CSS Transform In 15 Minu ...