Linux文件传输与下载命令完整教程
1. scp 命令
1.1. 什么是 scp?
scp(Secure Copy)是一种用于通过 SSH 进行文件或目录安全复制的命令行工具。它支持在本地与远程服务器之间、两个远程服务器之间传输文件。
1.2. 基本语法
scp [options] [source] [destination]source:源文件或目录。destination:目标文件或目录。
1.3. 常见选项
-r:递归复制目录及其内容。-P:指定远程服务器的 SSH 端口号(默认端口是22)。-C:压缩传输数据,以提高传输速度。-i:指定用于认证的 SSH 私钥文件。
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 密钥认证(推荐)
生成 SSH 密钥对:
ssh-keygen -t rsa将公钥复制到远程服务器:
ssh-copy-id user@192.168.1.100之后无需输入密码:
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. 常见选项
-a:归档模式,保留文件的权限、时间戳、符号链接等。-v:显示详细输出。-z:压缩数据传输。-r:递归传输目录。--progress:显示传输进度。-e:指定远程传输协议(如ssh)。
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. 常见选项
-O:指定输出文件名。-c:断点续传。-r:递归下载。--limit-rate:限制下载速度。--user和--password:指定HTTP或FTP的用户名和密码。
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.zip4. curl 命令
4.1. 什么是 curl?
curl 是一个命令行工具,用于通过 HTTP、HTTPS、FTP 等协议与服务器交互。它既可以下载文件,也可以发送HTTP请求。
4.2. 基本语法
curl [options] [url]4.3. 常见选项
-O:使用原始文件名下载。-o:指定下载文件的输出名。-C:断点续传。-u:指定用户名和密码。-L:跟随重定向。-X:指定请求方法(如GET、POST)。
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/upload5. ftp 命令
5.1. 什么是 ftp?
ftp 是一个交互式命令行工具,用于通过FTP协议进行文件传输。虽然相对老旧,仍然在某些特定场景中使用。
5.2. 基本语法
ftp [hostname]5.3. 常见命令
get:下载文件。put:上传文件。mget:批量下载文件。mput:批量上传文件。ls:列出目录内容。cd:切换远程目录。
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 *.txt6. 总结
以上命令涵盖了常见的文件传输和下载任务:
scp和rsync用于在本地与远程服务器之间进行文件传输。rsync提供了更强大的同步和增量传输功能。wget和curl用于从网络上下载文件,并且都支持断点续传和身份验证。ftp提供了一种传统的文件传输协议,在某些旧系统中仍然使用。
为了自动化传输过程,你可以结合 sshpass 或 SSH 密钥认证来处理密码问题。如果你有更多的特定需求或遇到问题
,请随时联系我!