今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去。 我之前一直是用WinSCP工具的。 先将文件从linux copy到windows下,然后在传到ftp上。google 一下。 方法也比较简单。 这里只讨论通过终端来连接,因为也可以通过IE 或者其他工具。

1.      Linux 终端连接FTP

[oracle@Dave ~]$ ftp 10.85.7.97

Connected to 10.85.7.97.

220 Serv-U FTP Server v6.4 for WinSock ready...

500 'AUTH': command not understood.

500 'AUTH': command not understood.

KERBEROS_V4 rejected as an authentication type

Name (10.85.7.97:oracle): super

331 User name okay, need password.

Password:   -- Linux 的密码是不回显的

230 User logged in, proceed.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

如果FTP 允许匿名用户,那么用户名要输入anonymous,密码任意。 不能直接敲回车。

2.      查看FTP 命令

ftp> ?

Commands may be abbreviated.  Commands are:

!               cr              mdir            proxy           send

$               delete          mget            sendport        site

account         debug           mkdir           put             size

append          dir             mls             pwd             status

ascii           disconnect      mode            quit            struct

bell            form            modtime         quote           system

binary          get             mput            recv            sunique

bye             glob            newer           reget           tenex

case            hash            nmap            rstatus         trace

ccc             help            nlist           rhelp           type

cd              idle            ntrans          rename          user

cdup            image           open            reset           umask

chmod           lcd             passive         restart         verbose

clear           ls              private         rmdir           ?

close           macdef          prompt          runique

cprotect        mdelete         protect         safe

可以通过help command 查看每个命令的说明

ftp> help put

put             send one file

ftp> help mput

mput            send multiple files

3.      上传文件

Put命令:格式:put local-file [remote-file] 将一个文件上传到ftp

Mput命令:格式:mput local-files 将本地主机中一批文件传送至远端主机.

注意:mput命令只能将当前本地目录下的文件上传到FTP上的当前目录。比如,在 /root/dave下运行的ftp命令,则只有在/root/dave下的文件linux才会上传到服务器上的当前目录下。

Put 代码示例:

ftp> pwd    -- 显示FTP上当前路径

257 "/" is current directory.

ftp> ls   -- 显示当前目录下的文件

227 Entering Passive Mode (10,85,7,97,16,141)

150 Opening ASCII mode data connection for /bin/ls.

drw-rw-rw-   1 user     group           0 Aug 17 16:11 .

drw-rw-rw-   1 user     group           0 Aug 17 16:11 ..

-rw-rw-rw-   1 user     group     1433088 Feb  5  2010 ASPAJAXExtSetup_PConline_PConline.msi

-rw-rw-rw-   1 user     group    197626837 Mar  8 10:00 DelphiV7.0.zip

drw-rw-rw-   1 user     group           0 Jul  9 10:17 HHT

-rw-rw-rw-   1 user     group     9235148 Dec 24  2009 Install_HSKey_V1.3.exe

-rw-rw-rw-   1 user     group    47316992 May 27 16:38 Release_4.rar

ftp> mkdir Dave    -- 创建文件夹Dave

257 "/Dave" directory created.

ftp> cd Dave      -- 进入文件夹Dave

250 Directory changed to /Dave

ftp> pwd        -- 显示当前目录

257 "/Dave" is current directory.

ftp> lcd     -- 显示当前本地的路径,我们可以将这个路径下的这个文件上传到FTP服务器的相关位置

Local directory now /home/oracle

ftp> !      -- 退出当前的窗口,返回Linux 终端,当我们退出终端的时候,又会返回到FTP上。

[oracle@Dave ~]$ ls  -- 显示当前目录下的文件

dead.letter  scripts  sqlnet.log

[oracle@Dave ~]$ vi Dave  -- 创建文件 Dave

[oracle@Dave ~]$ vi DBA   -- 创建文件 DBA

[oracle@Dave ~]$ ls       -- 显示文件夹里的内容,等会我们将这些文件copy到FTP上

Dave  DBA  dead.letter  scripts  sqlnet.log

[oracle@Dave ~]$ exit  -- 退出终端,返回FTP命令行

exit

ftp> lcd

Local directory now /home/oracle

ftp> put DBA DBA    -- 将刚才创建的文件DBA 上传到ftp的当前目录上并命名为DBA。

local: DBA remote: DBA

227 Entering Passive Mode (10,85,7,97,16,156)

150 Opening BINARY mode data connection for DBA.

226 Transfer complete.

5 bytes sent in 3.3e-05 seconds (1.5e+02 Kbytes/s)

ftp> put DBA /Dave/SFDBA -- 将刚才创建的文件DBA 上传到ftp的当前目录上并重命名为SFDBA。

local: DBA remote: /Dave/SFDBA

227 Entering Passive Mode (10,85,7,97,16,158)

150 Opening BINARY mode data connection for SFDBA.

226 Transfer complete.

5 bytes sent in 1.8e-05 seconds (2.7e+02 Kbytes/s)

ftp> put /home/oracle/DBA /test/SFDBA

local: /home/oracle/DBA remote: /test/SFDBA

227 Entering Passive Mode (10,85,7,97,16,163)

150 Opening BINARY mode data connection for SFDBA.

226 Transfer complete.

5 bytes sent in 2.2e-05 seconds (2.2e+02 Kbytes/s)

ftp> cd test

250 Directory changed to /test

ftp> ls

227 Entering Passive Mode (10,85,7,97,16,169)

150 Opening ASCII mode data connection for /bin/ls.

drw-rw-rw-   1 user     group           0 Aug 17 17:11 .

drw-rw-rw-   1 user     group           0 Aug 17 17:11 ..

-rw-rw-rw-   1 user     group           5 Aug 17 17:11 SFDBA

-rw-rw-rw-   1 user     group        5508 Aug 17 16:21 sqlnet.log

226 Transfer complete.

Mput 示例代码:

ftp> cd Dave

250 Directory changed to /Dave

ftp> mput *

mput alert_log.txt?    -- 这里每个文件都要确认,按回车键就可以了

227 Entering Passive Mode (10,85,7,97,16,196)

150 Opening BINARY mode data connection for alert_log.txt.

226 Transfer complete.

712 bytes sent in 2.9e-05 seconds (2.4e+04 Kbytes/s)

mput alert_newccs.hist?

227 Entering Passive Mode (10,85,7,97,16,197)

150 Opening BINARY mode data connection for alert_newccs.hist.

226 Transfer complete.

9321666 bytes sent in 0.78 seconds (1.2e+04 Kbytes/s)

mput alert_newccs.log?

227 Entering Passive Mode (10,85,7,97,16,198)

150 Opening BINARY mode data connection for alert_newccs.log.

226 Transfer complete.

21707 bytes sent in 0.0014 seconds (1.5e+04 Kbytes/s)

ftp> ls       -- 显示目录下的文件

227 Entering Passive Mode (10,85,7,97,16,217)

150 Opening ASCII mode data connection for /bin/ls.

drw-rw-rw-   1 user     group           0 Aug 17 17:22 .

drw-rw-rw-   1 user     group           0 Aug 17 17:22 ..

-rw-rw-rw-   1 user     group           5 Aug 17 17:09 SFDBA

-rw-rw-rw-   1 user     group         712 Aug 17 17:21 alert_log.txt

-rw-rw-rw-   1 user     group     9321666 Aug 17 17:21 alert_newccs.hist

-rw-rw-rw-   1 user     group       21707 Aug 17 17:21 alert_newccs.log

226 Transfer complete.

ftp> delete SFDBA   --删除SFDBA 文件

250 DELE command successful.

ftp> mdelete a*   -- 批量删除文件

mdelete alert_log.txt?  -- 每个文件都要确认

250 DELE command successful.

mdelete alert_newccs.hist?

250 DELE command successful.

mdelete alert_newccs.log?

250 DELE command successful.

4.       下载文件

同样也有2个命令: get 和 mget。 Mget 用户批量下载。

格式:get [remote-file] [local-file]

mget [remote-files]

同样,mget 是将文件下载到本地的当前目录下。

Get 示例:

ftp> get /test/SFDBA /home/SFDBA

local: /home/SFDBA remote: /test/SFDBA

local: /home/SFDBA: Permission denied  --Linux对权限控制的很严格,下载的时候是否有对应文件夹的写权限

ftp>  get /test/SFDBA /home/oracle/SFDBA

local: /home/oracle/SFDBA remote: /test/SFDBA

227 Entering Passive Mode (10,85,7,97,17,0)

150 Opening BINARY mode data connection for SFDBA (5 Bytes).

226 Transfer complete.

5 bytes received in 6.2e-05 seconds (79 Kbytes/s)

ftp> !

[oracle@Dave bdump]$ cd /home/oracle/

[oracle@Dave ~]$ ls

Dave  DBA  dead.letter  scripts  SFDBA  sqlnet.log

Mget 示例:

ftp> ls

227 Entering Passive Mode (10,85,7,97,17,10)

150 Opening ASCII mode data connection for /bin/ls.

drw-rw-rw-   1 user     group           0 Aug 17 17:38 .

drw-rw-rw-   1 user     group           0 Aug 17 17:38 ..

-rw-rw-rw-   1 user     group           5 Aug 17 17:38 DBA

-rw-rw-rw-   1 user     group          12 Aug 17 17:38 Dave

-rw-rw-rw-   1 user     group           5 Aug 17 17:11 SFDBA

226 Transfer complete.

ftp> mget *

mget DBA?  -- 每个文件都要确认, 按回车即可

227 Entering Passive Mode (10,85,7,97,17,12)

150 Opening BINARY mode data connection for DBA (5 Bytes).

226 Transfer complete.

5 bytes received in 8.1e-05 seconds (60 Kbytes/s)

mget Dave?

227 Entering Passive Mode (10,85,7,97,17,13)

150 Opening BINARY mode data connection for Dave (12 Bytes).

226 Transfer complete.

12 bytes received in 8.3e-05 seconds (1.4e+02 Kbytes/s)

mget SFDBA?

227 Entering Passive Mode (10,85,7,97,17,14)

150 Opening BINARY mode data connection for SFDBA (5 Bytes).

226 Transfer complete.

5 bytes received in 9e-05 seconds (54 Kbytes/s)

ftp> !

[oracle@Dave ~]$ ls

Dave  DBA  dead.letter  scripts  SFDBA  sqlnet.log

说明的地方:FTP 当前目录下的文件下载到本地的当前目录。

5.   断开FTP 连接

Bye命令或者quit命令:中断与服务器的连接。

ftp> bye

221 Goodbye!

以上只是Linux 终端访问ftp及上传下载的几个简单示例。 不过一般这几个应该够用了。其他功能感兴趣的自己研究。

Linux 终端访问 FTP 及 上传下载 文件的更多相关文章

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

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

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

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

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

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

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

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

  5. 在linux命令行利用SecureCRT上传下载文件

    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地?与ssh有关的 ...

  6. 使用批处理文件在FTP服务器 上传下载文件

    1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt   192.168.1.1 建立一个 ...

  7. Spring学习---Spring中利用组件实现从FTP服务器上传/下载文件

    FtpUtil.java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcepti ...

  8. FTP进行上传下载文件

    1.需要引入外部jar包:commons-net-2.0.jar(或者是子包commons-net-ftp-2.0.jar) 2.需下载ftp服务器 3. 本地电脑访问ftp服务器格式:ftp://用 ...

  9. 使用ftp软件上传下载php文件时换行丢失bug

    正 文:   在使用ftp软件上传下载php源文件时,我们偶尔会发现在本地windows下notepad++编辑器写好的php文件,在使用ftp上传到linux服务器后,php文件的换行符全部丢失了, ...

随机推荐

  1. HTML5标签

    可以进行省略的标签 不允许写结束标记的标签:area(定义图像映射中的区域).base(为页面上的所有链接规定默认地址或默认目标).br.col(为表格中一个或多个列定义属性值).embed(定义嵌入 ...

  2. [.net 面向对象程序设计进阶] (8) 托管与非托管

    本节导读:虽然在.NET编程过程中,绝大多数内存垃圾回收由CLR(公共语言运行时)自动回收,但也有很多需要我们编码回收.掌握托管与非托管的基本知识,可以有效避免某些情况下导致的程序异常. 1.什么是托 ...

  3. Android源码下载并绑定到Eclipse中

    在Windows下,通过SDK Manager.exe更新下载的Android,是不带源码的,我们开发开发起来不是很方便: 其实Android的源代码是可以下载的,其源代码入在http://andro ...

  4. hdu----(1528)Card Game Cheater(最大匹配/贪心)

    Card Game Cheater Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  5. 《MySQL悲观锁总结和实践》乐观锁

    mysql乐观锁总结和实践 博客分类: MyBatis 数据库 mysql数据库乐观锁悲观锁 上一篇文章<MySQL悲观锁总结和实践>谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景 ...

  6. MIT 2012分布式课程基础源码解析-线程池实现

    主要内容 ScopedLock 队列实现 线程池实现 在正式讲解线程池实现之前,先讲解两个有用的工具类: ScopedLock fifo队列 ScopedLock: ScopedLock是局域锁的实现 ...

  7. powerdesigner 字段大小写转换\id 自增

    转换:tools --> model options-->naming convention  name code 自增: 在你所要设为自增型的键上(比如你的id)双击 ,弹出一个Colu ...

  8. 201521123044 《Java程序设计》第3周学习总结

    1. 本章学习总结 2. 书面作业 1. 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  9. 设计模式之行为类模式PK

    行为类模式包括: 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 行为型模式涉及到算法和对象间职责的分配 行为类模式关注 ...

  10. 阿里云 RDS for MySQL支持什么引擎

    问题:我们的服务器是买的是阿里云,mysql版本5.011 ,本地和服务器配置一样,在本地可以安装discuzX3.4,但是在服务器上却报错了,如下图: 找了半天,才知道阿里云RDS 支持的mysql ...