mcopy ( 英文全称为:MS-DOS copy ) 命令是 mtools 软件工具集中的一个命令,它的功能主要是用于在 FreeBSD / Linux 系统与 MS-DOS 文件系统(FAT16/FAT32)之间复制文件。

本文将为你介绍 mcopy 命令的使用方法,使你对 mcopy 命令具有基本的了解,方便你使用该工具在不同的文件系统之间复制文件。

系统安装指南

mcopy 属于 mtools 软件包,各系统安装命令如下:

Debian / Ubuntu 系统

在 Debian / Ubuntu 系统安装 mcopy 所在的软件包 mtools:

sudo apt update && sudo apt install mtools -y

RHEL / AlmaLinux 系统

在 RHEL / AlmaLinux / Rocky Linux 系统安装 mcopy 所在的软件包 mtools:

sudo dnf update
sudo dnf install mtools

FreeBSD 系统

在 FreeBSD 系统安装 mcopy 所在的软件包 mtools:

sudo pkg update
sudo pkg install mtools

mcopy 命令语法

如下给出 mcopy 命令的基本语法结构:

mcopy [选项] 源文件... 目标文件
mcopy [选项] 源文件... 目标目录

语法结构中重要部分的解释说明:

  • 源文件:支持 Unix 路径或 DOS 设备名(如 a:file.txt
  • 目标文件或目录:支持 Unix 路径或 DOS 设备
  • 特殊设备名解释说明:
    • a: = 第一个软驱
    • c: = 第一个硬盘分区
    • d: = 第二个硬盘分区

不同文件系统间路径转换的相关规则说明:

  • 目录分隔符不同:Unix 路径使用正斜杠 / 分割目录,DOS 路径使用反斜杠 \ 分割目录
  • 自动转换文件名:
    • 小写字符会转换为大写
    • 特殊的字符转换为下划线 _
    • 过长的文件名会依据 8.3 格式截断

附:“8.3 格式” 通常指 Windows/DOS 系统中一种文件命名规范,其基本的要求是文件名不超过 8 个字符,扩展名不超过 3 个字符,且不允许使用空格等特殊符号。

mcopy 命令使用示例

1. 复制文件到 DOS 磁盘

源文件指定 Unix 系统文件,目标文件指定 DOS 磁盘的位置,会把文件复制到 DOS 磁盘:

mcopy report.txt a:
# 将当前目录的 report.txt 复制到

解释说明:a: 为 DOS 系统下的软盘

2. 从 DOS 磁盘复制到 Unix

源文件指定 DOS 系统文件,目标文件指定 Unix 磁盘的位置,会把文件从 DOS 复制到 Unix 磁盘:

mcopy d:\data\config.ini ~/backup/

3. 复制时保留文件属性

使用 -a 选项,在文件系统间复制文件时,会保留文件的原始属性信息:

mcopy -a manual.doc c:\docs\

4. 递归复制目录

使用 -s 选项实现递归复制子目录中的内容:

mcopy -s -n ~/photos/*.jpg d:\images\

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:

mcopy 与 cp 命令的区别

特性 mcopy cp
文件系统支持情况 专用于 MS-DOS/FAT 文件系统 通用文件系统
是否转换文件名 自动转换大小写和格式 保留原始文件名
是否转换换行符 支持 LF ↔ CRLF 转换 不做任何转换

结语

本文全面的介绍了 mcopy 的语法结构及其功能,并给出了 mcopy 命令的具体使用示例,相信你能够对 mcopy 命令有个基本的了解,并帮助你正确的使用 mcopy 在不同系统间复制文件。 mcopy 命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。