宋子宪博客

Linux文件传输与下载命令完整教程

1. scp 命令

1.1. 什么是 scp

scpSecure Copy)是一种用于通过 SSH 进行文件或目录安全复制的命令行工具。它支持在本地与远程服务器之间、两个远程服务器之间传输文件。

1.2. 基本语法

scp [options] [source] [destination]

1.3. 常见选项

1.4. 示例

从远程服务器下载文件到本地

scp user@192.168.1.100:/home/user/file.txt /local/directory/

从本地上传文件到远程服务器

scp /local/file.txt user@192.168.1.100:/home/user/

递归复制目录

scp -r user@192.168.1.100:/home/user/directory/ /local/directory/

使用自定义SSH端口

scp -P 2222 user@192.168.1.100:/home/user/file.txt /local/directory/

1.5. 处理密码验证

手动输入密码

在默认情况下,scp 会在运行时提示你输入用户密码。

使用 sshpass 自动输入密码

对于自动化任务,可以使用 sshpass 工具:

sshpass -p 'your_password' scp -r user@192.168.1.100:/home/user/directory/ /local/directory/

使用 SSH 密钥认证(推荐)

  1. 生成 SSH 密钥对:

    ssh-keygen -t rsa
  2. 将公钥复制到远程服务器:

    ssh-copy-id user@192.168.1.100
  3. 之后无需输入密码:

    scp -r user@192.168.1.100:/home/user/directory/ /local/directory/

2. rsync 命令

2.1. 什么是 rsync

rsync 是用于高效传输和同步文件和目录的命令。与 scp 不同的是,rsync 只传输更新过的部分,并支持断点续传。

2.2. 基本语法

rsync [options] [source] [destination]

2.3. 常见选项

2.4. 示例

从远程服务器同步文件到本地

rsync -avz user@192.168.1.100:/home/user/directory/ /local/directory/

从本地同步文件到远程服务器

rsync -avz /local/directory/ user@192.168.1.100:/home/user/directory/

使用 ssh 进行同步

rsync -avz -e "ssh -p 2222" /local/directory/ user@192.168.1.100:/home/user/directory/

2.5. 处理密码验证

同样可以使用 sshpass 或 SSH 密钥认证来处理密码验证:

sshpass -p 'your_password' rsync -avz /local/directory/ user@192.168.1.100:/home/user/directory/

3. wget 命令

3.1. 什么是 wget

wget 是一个命令行工具,用于从网络上下载文件。它支持通过HTTP、HTTPS、FTP等协议下载文件,并支持断点续传。

3.2. 基本语法

wget [options] [url]

3.3. 常见选项

3.4. 示例

下载单个文件

wget http://example.com/file.zip

下载并指定输出文件名

wget -O custom_name.zip http://example.com/file.zip

断点续传

wget -c http://example.com/largefile.zip

下载需要身份验证的文件

wget --user=username --password=your_password http://example.com/protected_file.zip

4. curl 命令

4.1. 什么是 curl

curl 是一个命令行工具,用于通过 HTTP、HTTPS、FTP 等协议与服务器交互。它既可以下载文件,也可以发送HTTP请求。

4.2. 基本语法

curl [options] [url]

4.3. 常见选项

4.4. 示例

下载文件并保存为原始文件名

curl -O http://example.com/file.zip

下载文件并指定输出文件名

curl -o custom_name.zip http://example.com/file.zip

断点续传

curl -C - -O http://example.com/largefile.zip

下载需要身份验证的文件

curl -u username:password -O http://example.com/protected_file.zip

发送POST请求上传文件

curl -X POST -F "file=@/path/to/local/file" http://example.com/upload

5. ftp 命令

5.1. 什么是 ftp

ftp 是一个交互式命令行工具,用于通过FTP协议进行文件传输。虽然相对老旧,仍然在某些特定场景中使用。

5.2. 基本语法

ftp [hostname]

5.3. 常见命令

5.4. 示例

登录 FTP 服务器

ftp 192.168.1.100

输入用户名和密码登录后,使用以下命令传输文件。

下载文件

get remote_file.txt local_file.txt

上传文件

put local_file.txt remote_file.txt

批量下载文件

mget *.txt

批量上传文件

mput *.txt

6. 总结

以上命令涵盖了常见的文件传输和下载任务:

为了自动化传输过程,你可以结合 sshpass 或 SSH 密钥认证来处理密码问题。如果你有更多的特定需求或遇到问题

,请随时联系我!

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »