5个Linux文件传输命令

dafenqi
2024-01-09 / 0 评论 / 9 阅读 / 正在检测是否收录...

文件传输命令允许你通过网络在系统间移动文件。这对于将文件复制到远程服务器或从互联网下载内容非常有用。

1. scp – 在主机间安全复制文件

scp (安全复制)命令通过 SSH 连接在主机间复制文件。所有数据传输都经过加密,以确保安全。

scp 语法可将文件从源路径复制到定义为 user@host 的目的地:

scp source user@host:destination

例子:

scp image.jpg user@server:/uploads/

这样就能以 user 身份将 image.jpg 复制到 server 上的 /uploads 文件夹。

scp 的工作原理与 cp 命令类似,但用于远程文件传输。它利用 SSH(Secure Shell)进行数据传输,提供加密功能,确保不会在网络上泄露密码等敏感数据。身份验证通常使用 SSH 密钥,但也可以使用密码。文件既可以复制到远程主机,也可以从远程主机复制。

2. rsync – 在主机间同步文件

rsync 工具可在两个位置之间同步文件,同时使用 delta 编码尽量减少数据传输。这使得同步大型目录树的速度更快。

rsync 语法同步源文件到目标文件:

rsync [options] source destination

例子:

rsync -ahv ~/documents user@server:/backups/

上述示例命令将 documents 文件夹递归同步到 server:/backups/,并显示冗长的、人类可读的输出。

有用的 rsync 选项:

  • a – 归档模式递归同步并保留权限、时间等。
  • h – 人类可读输出。
  • v – 冗余输出。

rsync 是将文件和文件夹同步到远程系统并保持分散备份和安全的理想工具。

3. sftp – 安全文件传输程序

sftp 程序通过 SSH 提供交互式文件传输,与普通 FTP 类似,但已加密。它可以在远程系统之间传输文件。

sftp 连接到主机,然后接受以下命令:

sftp user@host
get remotefile localfile (复制远程文件到本地,此时remotefile可以是文件,也可以是文件夹)
put localfile remotefile (把本地文件复制到远程,此时localfile如果是文件夹,前面要加-r)

这样就能从服务器上获取 remotefile ,并将 localfile 复制到远程主机上。

sftp 有一个交互式 shell,用于浏览远程文件系统、传输文件和目录以及管理权限和属性。

4. wget – 从网上检索文件

wget(World Wide Web get)是从互联网检索内容的实用工具。它拥有最大的flags之一。

有用的 wget 选项:

  • c – 恢复中断的下载,如果下载过程中出现连接中断或下载被取消,你可以使用 -c 选项重新启动下载,它会尝试从上次中断的地方继续下载。
  • r – 递归下载,即下载指定 URL 下的所有链接和资源。它非常有用,特别是当你需要下载一个整个网站或某个目录中的文件时。
  • O – 保存到特定文件名,通过指定 -O 选项和文件名,你可以控制下载文件的保存位置和名称。

wget 是编写自动下载脚本和镜像网站的理想工具。

以下是您如何从GitHub获取一个Python文件:

wget https://example.com/cookies.py
#保存为链接尾部名称cookies.py

wget -O myfile.py https://example.com/cookies.py
#保存为myfile.py

5. curl – 从服务器传输数据或向服务器传输数据

curl 命令可使用支持的协议与网络服务器之间传输数据。它支持多种常用协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SMTP、POP3、IMAP、Telnet 和 DICT。通过 curl,我们可以发送请求,获取网页内容、下载文件,以及执行其他网络操作。

例子:

curl -o example.html https://example.com
#该命令会将 https://example.com 的响应保存为名为 example.html 的文件。

curl -L https://example.com
#该命令会自动跟踪 https://example.com 的重定向,并获取最终的响应内容。

上述命令从 HTTPS URL 获取数据并输出。

有用的 curl 选项:

  • o – 将输出写入文件。
  • I – 仅显示响应头。
  • L – 跟踪重定向。

curl 旨在以编程方式跨网络传输数据。

ps:以上只做粗略介绍,撬开入门的第一块砖,更深入的知识请自行查资料了解。

0

评论 (0)

取消