Linux mcopy 命令 - MSDOS 复制文件
• 最后修改:2025-07-15 • 阅读量:3
本文深入解析 Linux / Unix / FreeBSD 系统中的 mcopy
命令(英文全称:MS-DOS copy utility),提供跨平台使用指南和高效文件复制技巧,专门用于操作 MS-DOS / FAT 格式文件系统。
命令释义
mcopy ( MS-DOS copy utility ) 是 mtools
软件包中的核心命令,用于 在 Unix/Linux 系统与 MS-DOS 文件系统(FAT12/FAT16/FAT32)之间复制文件。其主要功能包括:
- 💾 跨系统复制:在 Unix 和 MS-DOS 文件系统间双向传输文件
- 📁 保留属性:保持 DOS 文件属性(归档/只读/系统/隐藏)
- 🚀 直接访问:无需挂载即可操作 DOS 格式磁盘
- 🔄 批量操作:支持通配符和目录递归复制
系统安装指南
mcopy
属于 mtools
软件包,各系统安装命令如下:
Debian / Ubuntu 系统
Debian / Ubuntu 系统安装 mcopy 所在的软件包 mtools:
sudo apt update && sudo apt install mtools -y
RHEL / AlmaLinux / Rocky Linux 系统
RHEL / AlmaLinux / Rocky Linux 系统安装 mcopy 所在的软件包 mtools:
sudo dnf update
sudo dnf install mtools
FreeBSD 系统
FreeBSD 系统安装 mcopy 所在的软件包 mtools:
sudo pkg update
sudo pkg install mtools
Arch Linux 系统
Arch Linux 系统安装 mcopy 所在的软件包 mtools:
sudo pacman -Sy
sudo pacman -S mtools
验证安装:
mcopy --version
mcopy 命令语法
mcopy [选项] 源文件... 目标文件
mcopy [选项] 源文件... 目标目录
- 源文件:支持 Unix 路径或 DOS 设备名(如
a:file.txt
) - 目标路径:
- DOS 设备:
d:backup\file.doc
- Unix 路径:
~/documents/
- DOS 设备:
- 特殊设备名:
a:
= 第一个软驱c:
= 第一个硬盘分区d:
= 第二个硬盘分区
路径转换规则:
- Unix 路径使用正斜杠
/
(例:/home/user
) - DOS 路径使用反斜杠
\
(例:c:\windows
) - 自动转换文件名:
- 小写转大写
- 特殊字符转
_
- 截断超过 8.3 格式的文件名
mcopy命令示例
1:复制文件到 DOS 磁盘
mcopy report.txt a:
# 将当前目录的 report.txt 复制到软盘 (a:)
2:从 DOS 磁盘复制到 Unix
mcopy d:\data\config.ini ~/backup/
# 从 d: 盘复制 config.ini 到 Unix 的 backup 目录
3:保留文件属性复制
mcopy -a manual.doc c:\docs\
# 复制时保留 DOS 文件属性(归档/只读等)
4:递归复制目录
mcopy -s -n ~/photos/*.jpg d:\images\
# 递归复制所有 JPG 文件,保留目录结构(-s)
# -n 选项自动转换文件名
5:批量复制文本文件
mcopy -t -m *.txt a:
# -t 将文本文件从 Unix LF 转换为 DOS CRLF
# -m 保留文件修改时间
mcopy 命令选项详解
如下给出 mcopy 命令的详细解释说明:
选项 | 说明 | 示例 |
---|---|---|
-n |
自动转换文件名(符合 8.3 格式) | mcopy -n longfilename.txt a: |
-m |
保留文件修改时间 | mcopy -m file.doc c:\ |
-a |
保留 DOS 文件属性(归档/只读等) | mcopy -a config.sys b: |
-s |
递归复制子目录 | mcopy -s ~/data/* d:\backup\ |
-Q |
遇到错误时询问 | mcopy -Q critical.bin a: |
-v |
详细模式(显示操作过程) | mcopy -v *.txt c:\docs\ |
-t |
文本模式转换(LF ↔ CRLF) | mcopy -t script.bat unix/ |
-b |
批处理模式(不询问确认) | mcopy -b *.* d: |
-p |
保留文件权限(仅 Unix → DOS) | mcopy -p document.pdf a: |
-o |
覆盖目标文件不提示 | mcopy -o update.exe c:\ |
-i |
指定磁盘映像文件 | mcopy -i disk.img file.txt :: |
-D |
调试模式(显示内部操作) | mcopy -D debug.log c:\ |
-- |
终止选项解析 | mcopy -- -file.txt a: |
与 cp 命令的区别
特性 | mcopy | cp |
---|---|---|
文件系统 | 专用于 MS-DOS/FAT | 通用文件系统 |
文件名转换 | 自动转换大小写和格式 | 保留原始文件名 |
换行符处理 | 支持 LF ↔ CRLF 转换 | 不做转换 |
设备访问 | 直接访问磁盘设备 | 需挂载设备 |
属性保留 | 支持 DOS 属性(归档/只读) | 保留 Unix 属性 |
结语
mcopy
是处理 MS-DOS 文件系统的专业工具,关键要点:
- 跨平台兼容:无缝连接 Unix/Linux 与 DOS 系统
- 高效传输:直接访问设备无需挂载
- 格式转换:自动处理文件名和换行符差异
- 适用场景:
- 操作软盘/USB 闪存等 FAT 格式设备
- 访问 DOS 磁盘映像文件(.img)
- 恢复旧 DOS 系统数据
最佳实践:
- 复制文本文件使用
-t
确保换行符正确- 复制可执行文件使用
-a
保留属性- 处理长文件名使用
-n
自动转换- 批量操作使用
-b
避免交互中断- 通过
-i
直接操作磁盘映像文件
通过掌握 mcopy
命令,您将能高效管理 MS-DOS 格式存储设备!