如何使用Linux FTP命令来传输文件

评论 0 浏览 0 2018-09-29

FTP(文件传输协议)是一个标准的网络协议,用于将文件传输到远程网络,或从远程网络传输。

在本教程中,我们将通过实际例子向你展示如何使用Linux的ftp命令。

在大多数情况下,你将使用一个桌面FTP客户端来连接到远程服务器并下载或上传文件。然而,当你在一个没有GUI的服务器上工作,并且你想通过FTP向远程服务器传输文件时,ftp命令很有用。

开始之前

FTP流量是不加密的。对于安全的数据传输,请使用SCPSFTP

为了能够传输文件,你必须在源文件上至少有读的权限,在目标系统上有写的权限。

当传输大文件时,建议在屏幕tmux会话中运行ftp命令。

你运行ftp命令的目录是本地工作目录。

建立一个FTP的连接

  1. 要打开一个与远程系统的ftp连接,调用ftp命令,后面跟上远程服务器的IP地址或域名。例如,要连接到一个位于 "192.168.42.77 "的FTP服务器,你需要输入

    ftp 192.168.42.77
  2. 如果连接建立,将显示一条确认信息,并提示你输入你的FTP用户名,在这个例子中,FTP的用户名是linuxize

    输出

    220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
    220-You are user number 1 of 50 allowed.
    220-Local time is now 21:35. Server port: 21.
    220-This is a private system - No anonymous login
    220-IPv6 connections are also welcome on this server.
    220 You will be disconnected after 15 minutes of inactivity.
    Name (192.168.42.77:localuser): linuxize

    你可能会看到一个不同的确认信息,这取决于在远程服务器上运行的FTP服务。

  3. 一旦你输入了用户名,就会有人提示你输入密码。

    输出

    Password:
  4. 如果密码正确,远程服务器将显示一个确认信息和ftp>提示。

    输出

    230 OK. Current restricted directory is /
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>

如果你要访问的FTP服务器接受匿名的FTP帐户,而你想以匿名用户的身份登录,请使用anonymous作为用户名,并使用你的电子邮件地址作为密码。

常见的FTP命令

大多数FTP命令与你在Linux shell提示符下键入的命令相似或相同。

下面是一些最常用的 FTP 命令

  • help? - 列出所有可用的FTP命令。
  • cd - 更改远程机器上的目录。
  • lcd - 更改本地机器上的目录。
  • ls - 列出当前远程目录中的文件和目录的名称。
  • mkdir - 在当前的远程目录中创建一个新的目录。
  • pwd - 打印远程机器上的当前工作目录。
  • delete - 移除当前远程目录中的一个文件。
  • rmdir- 在当前的远程目录中删除一个目录。
  • get - 从远程复制一个文件到本地机器上。
  • mget - 将多个文件从远程复制到本地机器。
  • put - 从本地机器复制一个文件到远程机器上。
  • mput - 从本地机器复制多个文件到远程机器。

ftp命令下载文件

登录后,您的当前工作目录 是远程用户主目录。

使用ftp 命令下载文件时,文件将下载到您键入ftp 命令的目录。

如果要将文件下载到另一个本地目录,请使用lcd 命令切换到该目录。

假设我们要将文件下载到 ~/ftp_downloads 目录:

lcd ~/ftp_downloads

要从远程服务器下载一个单一的文件,使用get命令。例如,要下载一个名为backup.zip的文件,你将使用以下命令。

get backup.zip

输出结果应该是这样的。

输出

200 PORT command successful
150-Connecting to port 60609
150 6516.9 kbytes to download
226-File successfully transferred
226 2.356 seconds (measured here), 2.70 Mbytes per second
6673256 bytes received in 2.55 seconds (2.49 Mbytes/s)

要一次下载多个文件,使用mget命令。你可以提供一个单独的文件名列表或使用通配符。

mget backup1.zip backup2.zip

当下载多个文件时,你会被提示确认每个文件的内容。

输出

mget backup1.zip? y
200 PORT command successful
150 Connecting to port 52231
226-File successfully transferred
226 0.000 seconds (measured here), 31.51 Kbytes per second
14 bytes received in 0.00058 seconds (23.6 kbytes/s)
mget backup2.zip? y
200 PORT command successful
150-Connecting to port 59179
150 7.2 kbytes to download
226-File successfully transferred
226 0.000 seconds (measured here), 16.68 Mbytes per second
7415 bytes received in 0.011 seconds (661 kbytes/s)

一旦你完成了从远程FTP服务器上下载文件,就用byequit命令关闭连接。

quit

输出

221-Goodbye. You uploaded 0 and downloaded 6544 kbytes.
221 Logout.

用FTP命令上传文件

要从本地目录上传一个文件到远程FTP服务器,请使用put命令。

put image.jpg

输出结果应该是这样的。

输出

200 PORT command successful
150 Connecting to port 34583
226-File successfully transferred
226 0.849 seconds (measured here), 111.48 Kbytes per second
96936 bytes sent in 0.421 seconds (225 kbytes/s)

如果你想上传一个不在你当前工作目录中的文件,请使用该文件的绝对路径。

要从一个本地目录上传多个文件到远程FTP服务器,请调用mput命令。

mput image1.jpg image2.jpg

输出

mput image1.jpg? y
200 PORT command successful
150 Connecting to port 41075
226-File successfully transferred
226 1.439 seconds (measured here), 102.89 Kbytes per second
151586 bytes sent in 1.07 seconds (138 kbytes/s)
mput image2.jpg? y
200 PORT command successful
150 Connecting to port 40759
226-File successfully transferred
226 1.727 seconds (measured here), 111.75 Kbytes per second
197565 bytes sent in 1.39 seconds (138 kbytes/s)

当上传多个文件时,命令会提示你确认你要上传的每一个文件。

一旦你完成了向你的远程FTP服务器上传文件,就用byequit关闭连接。

总结

在本教程中,你学会了如何使用ftp命令来下载和上传文件到远程FTP服务器。

如果你有任何问题,请随时留言评论。

最后更新2023-09-16
0 个评论
标签