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命令上传下载文件的更多相关文章

  1. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  2. linux利用scp远程上传下载文件/文件夹

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度. 当你服务 ...

  3. linux利用sh脚本上传下载文件到ftp服务器

    ####本地的/app/awsm/csv2 to ftp服务器上的/awsm/#### #!/bin/sh export today=`date +%Y-%m-%d` ftp -v -n 10.116 ...

  4. 【ARM-LInux开发】利用scp 远程上传下载文件/文件夹

    利用scp 远程上传下载文件/文件夹 scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o s ...

  5. Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...

  6. Linux 终端訪问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  7. Linux 终端访问 FTP 及 上传下载 文件[转]

    1.      Linux 终端连接FTP [oracle@Dave ~]$ ftp 10.85.7.97 Connected to 10.85.7.97. 220 Serv-U FTP Server ...

  8. Linux 普通用户拿到root权限及使用szrz命令上传下载文件

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  9. linux使用命令上传下载文件 -- lrzsz

    之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...

  10. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

随机推荐

  1. 一步步开发Windows服务(Windows Service)[转]

    基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加. 1.创建服务 2.删除默认服务文件 3.添加自己的服务文件 4.更改启动项目 5. 引用 using System.T ...

  2. union在重构代码中的使用技巧

    http://blog.chinaunix.net/uid-23629988-id-158156.html 在产品的开发过程中,无论是代码的重构,还是添加新的功能时,都不可避免的有对现有结构体的修改, ...

  3. PySide6/PyQt开发经验总结(2) - 设置快捷键

    Qt设置快捷键 本文仅供本人知识总结使用,所以内容会比较浅显,不喜勿喷. 目录 Qt设置快捷键 一.需要的类 QShortcut 函数: 二.设置快捷键 官方文档原文翻译: 我的理解: 一.需要的类 ...

  4. GPT 中的函数调用(function call)是什么?

    在 OpenAI ChatGPT API 和 Google Gemini API 中我们可以看到函数调用的功能.这个功能是做什么用的?下面大概讲解. 以 Google Gemini API 函数调用 ...

  5. 编译器实现之旅——第十三章 if语句和while语句的代码生成器分派函数的实现

    在上一章的旅程中,我们已经实现了表达式类代码生成器分派函数,而在这一章的旅程中,我们将要实现if语句和while语句的代码生成器分派函数.if语句和while语句是两种典型的带有跳转指令的语句.观察C ...

  6. 淘宝订单信息获取接口,淘宝订单信息获取API

    在日常电商软件开发的工作中,我们经常会遇到需要淘宝的订单信息的场景,比如:打单.发货,又比如做BI工具等.这就需要用到淘宝订单信息获取接口.只有获取到淘宝订单信息,才能进行下一步工作. 目前这个接口是 ...

  7. Seata 核心源码详解

    参考文章: 分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html 分布式事务原理及解决方案案例https://www.cnblo ...

  8. openStack-train 1-搭建部署

    openStack-train 搭建部署 当面对KVM集群的时候,我们对KVM的管理以及宿主机的管理就会遇到很大的难度,例如: 查看每一个宿主机有多少台KVM虚拟机? 查看每一个宿主机资源信息,每一个 ...

  9. .NET 6.0 + WPF 使用 Prism 框架实现导航

    前言 Prism 一个开源的框架,专门用于开发可扩展.模块化和可测试的企业级 XAML 应用程序,适用于 WPF(Windows Presentation Foundation)和 Xamarin F ...

  10. 处理英文中的单数复数 (pluralize, singular plural)

    因为英语很烂, 有时候很烦这个. 如果是 hard code 的情况, 如果我不清楚的话就会去这里找 https://www.wordhippo.com/what-is/the-plural-of/l ...