12-Linux文件传输与操作命令详解
Linux文件传输与操作命令详解
一、跨平台文件传输方案
1. Windows ⇄ Linux
- 推荐工具: MobaXterm工具上传和下载
- 使用场景: 图形化界面操作,简单便捷
2. Linux ⇄ Linux
- 推荐命令: scp, rsync, curl, wget等
- 使用场景: 命令行操作,适合自动化和脚本
二、SCP命令(安全复制)
基本语法
1 | scp [选项] 源文件 目标地址 |
常用选项
- -r: 递归复制整个目录
- -P port: 指定端口号(默认22)
- -p: 保留原文件的修改时间、访问时间和权限
使用示例
1. 复制文件到远程Linux主机
1 | # 复制文件到远程主机的家目录 |
2. 复制目录到远程Linux主机
1 | # 复制整个目录到远程主机 |
注意事项
- 首次连接需要确认主机密钥
- 需要输入远程主机的密码
- 路径可以是绝对路径或相对路径
三、CURL命令(网络访问)
基本语法
1 | curl [选项] [URL] |
常用选项
- -o 文件名: 将输出写入到指定文件
- -O: 使用URL中的文件名保存到本地
- -s: 静默模式,不显示进度信息
- -I: 只显示HTTP头信息
使用示例
1. 获取网页源码
1 | [root@myserver ~]# curl www.baidu.com |
2. 保存网页到文件
1 | [root@myserver ~]# curl -o baidu.html www.baidu.com |
3. 下载网络资源
1 | [root@myserver ~]# curl -O https://www.linuxprobe.com/docs/LinuxProbe.pdf |
四、RSYNC命令(文件同步)
基本语法
1 | rsync [选项] 源文件 目标文件 |
常用选项
- -a: 归档模式,保持所有文件属性
- -v: 显示详细信息
- -z: 传输时进行压缩
- -P: 显示进度和保持部分传输的文件
- -r: 递归复制目录
使用示例
1. 同步单个文件到远程主机
1 | [root@myserver ~]# rsync -avzP File.cfge root@11.0.1.136:~/ |
2. 同步整个目录到远程主机
1 | [root@myserver ~]# rsync -avzP dir root@11.0.1.136:~/ |
3. 同步本地文件
1 | rsync -avSH /var/log ./log |
思考题解答
1 | # 将远程文件同步到本地 |
五、WGET命令(网络下载)
基本语法
1 | wget [选项] [URL] |
常用选项
- -c: 断点续传
- -r: 递归下载
- -np: 不追踪父级目录
- -nH: 不创建主机目录
- -O 文件名: 指定输出文件名
使用示例
1. 下载单个文件
1 | # wget https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm -O ./mysql.rpm |
2. 断点续传下载
1 | [root@myserver ~]# wget -c https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm |
3. 下载整个网站
1 | wget -r -np -nH --cut-dirs=1 -R index.html news.baidu.com |
参数解释:
- -r: 递归下载
- -np: 不追踪父级目录
- -nH: 不创建主机目录
- –cut-dirs=1: 从URL中删除前1个目录
- -R index.html: 排除index.html文件
六、LN命令(链接创建)
硬链接 vs 软链接
硬链接:
- 与原文件共享相同的inode节点
- 删除原文件不影响硬链接
- 不能跨文件系统创建
- 不能链接目录
软链接:
- 创建新的inode节点
- 存储指向目标文件的路径
- 原文件删除后链接失效
- 可以跨文件系统
- 可以链接目录
创建示例
1. 创建硬链接
1 | # 创建目录 |
2. 创建软链接
1 | # 创建软链接 |
关键区别对比
| 特性 | 硬链接(Hard Link) | 软链接(Symbolic Link) |
|---|---|---|
| 跨分区 | ❌ 不支持 | ✅ 支持 |
| 依赖 inode | ✅ 是 | ❌ 否(依赖路径) |
| 源文件删除 | 仍可访问(数据未删除) | ❌ 失效(悬空链接) |
| 链接目录 | ❌ 不支持 | ✅ 支持 |
七、TAR命令(归档压缩)
基本语法
1 | tar [选项] 文件名 [文件或目录] |
常用选项
- -c: 创建新的归档文件
- -x: 从归档文件中提取文件
- -v: 显示详细信息
- -f: 指定归档文件名
- -z: 通过gzip压缩或解压缩
- -j: 通过bzip2压缩或解压缩
- -Z: 通过compress压缩或解压缩
- -C: 指定解压目录
- -t: 列出归档文件中的内容
使用示例
1. 创建压缩包
1 | # 使用gzip压缩 |
2. 解压缩
1 | # 删除原文件 |
注意事项
- 解压时需要与压缩时使用相同的算法
- 可以使用不同选项组合实现不同功能
八、命令对比总结
| 命令 | 主要用途 | 跨平台 | 特点 |
|---|---|---|---|
| scp | Linux间文件复制 | ✅ | 简单易用,需要密码或密钥 |
| rsync | 文件同步 | ✅ | 增量同步,适合备份 |
| curl | 网络访问 | ✅ | 功能强大,支持多种协议 |
| wget | 网络下载 | ✅ | 简单直接,适合下载文件 |
| ln | 创建链接 | ❌ | 创建硬链接或软链接 |
| tar | 归档压缩 | ❌ | 打包和压缩文件 |
