mcd 命令是mtools工具集的一部分,用于在MS-DOS文件系统中改变当前工作目录。与Linux系统中的cd命令类似,但是专门用于操作MS-DOS格式的存储设备(如软盘、U盘等)。
mtools是一组用于访问MS-DOS文件系统的工具集,允许在类Unix系统(如Linux)中直接操作MS-DOS格式的存储设备,无需挂载。常用命令包括:
# 在Debian/Ubuntu系统中安装
sudo apt-get install mtools
# 在CentOS/RHEL系统中安装
sudo yum install mtools
# 在Fedora系统中安装
sudo dnf install mtools
# 在Arch Linux中安装
sudo pacman -S mtools
# 验证安装
mtools --version
mcd [MS-DOS目录路径]
如果不指定目录路径,mcd会显示当前的MS-DOS工作目录。
| 驱动器代号 | 对应Linux设备 | 说明 |
|---|---|---|
a: |
/dev/fd0 |
第一个软盘驱动器(A:) |
b: |
/dev/fd1 |
第二个软盘驱动器(B:) |
c: |
/dev/hda 或 /dev/sda |
第一个硬盘驱动器(C:) |
d: |
/dev/hdb 或 /dev/sdb |
第二个硬盘驱动器(D:) |
e: 到 z: |
对应其他块设备 | 其他驱动器(可配置) |
# 配置文件位置
~/.mtoolsrc # 用户配置文件
/etc/mtools.conf # 系统配置文件
# 配置示例:添加USB驱动器映射
# 编辑 ~/.mtoolsrc
drive e: file="/dev/sdb1"
drive f: file="/dev/sdc1"
# 配置驱动器参数
drive c: file="/dev/hda1" fat_bits=16
drive d: file="/dev/hdb1" nodelay
# 显示当前MS-DOS文件系统中的工作目录
mcd
执行结果会显示类似:A:\ 或 C:\WINDOWS
# 切换到A:驱动器根目录
mcd a:
# 切换到C:驱动器根目录
mcd c:
驱动器字母后跟冒号表示切换到该驱动器的根目录。
# 切换到A:驱动器的DOS目录
mcd a:\dos
# 切换到C:驱动器的Windows系统目录
mcd c:\windows\system32
# 使用相对路径(基于当前MS-DOS目录)
mcd temp
mcd ..\backup
# 切换到D:驱动器的documents目录
mcd d:\documents
# 路径中允许使用正斜杠(/)或反斜杠(\)
mcd d:/users/john/documents
# 切换到A:驱动器根目录
mcd a:
# 列出当前目录内容
mdir
# 列出指定目录内容
mdir a:\documents
# 列出C:驱动器Windows目录内容
mdir c:\windows
# 切换到目标目录
mcd a:\backup
# 从Linux系统复制文件到MS-DOS设备
mcopy /home/user/document.txt a:
# 从MS-DOS设备复制文件到Linux系统
mcopy a:\data\file.txt /tmp/
# 使用通配符复制多个文件
mcopy a:\*.txt /home/user/documents/
# 确保在正确的驱动器
mcd c:
# 在C:驱动器创建新目录
mmd newfolder
# 创建多级目录
mmd c:\projects\2024\january
# 检查软盘驱动器
ls /dev/fd*
# 切换到软盘驱动器并操作
mcd a:
mdir # 查看软盘内容
mcopy report.txt a: # 复制文件到软盘
mcd a:\data # 切换到软盘上的data目录
# 首先配置U盘驱动器(假设U盘是/dev/sdb1)
# 编辑~/.mtoolsrc添加:
# drive u: file="/dev/sdb1"
# 使用U盘驱动器
mcd u:
mdir
mcopy u:\important.doc ~/backup/
# 切换到U盘的特定目录
mcd u:\photos\vacation
#!/bin/bash
# 批量复制软盘内容到Linux系统
for drive in a: b:; do
echo "处理驱动器 $drive"
# 切换到驱动器
mcd $drive
# 列出所有.txt文件并复制
for file in $(mdir | grep "\.txt$" | awk '{print $NF}'); do
echo "复制文件: $file"
mcopy "$drive\\$file" "/backup/dos_files/"
done
echo "驱动器 $drive 处理完成"
echo "------------------------"
done
a:, c:\ 表示,如 c:\\ 或正斜杠 /. - 当前目录.. - 父目录~/.mtoolsrc文件/dev/fd0)在现代Linux系统中,更常见的做法是直接挂载MS-DOS/FAT文件系统:
# 挂载软盘
sudo mount -t msdos /dev/fd0 /mnt/floppy
# 挂载U盘(FAT32格式)
sudo mount -t vfat /dev/sdb1 /mnt/usb
# 挂载后使用标准Linux命令操作
cd /mnt/usb
ls -la
cp file.txt ~/
挂载方法的优点:可以使用所有标准的Linux命令,无需学习mtools的特殊语法。
mtools工具集最初是为了在Unix系统上访问MS-DOS软盘而开发的。在早期,直接挂载DOS文件系统可能会遇到兼容性问题,mtools提供了无需挂载的直接访问方式。
虽然现在已不如过去常用,但在以下场景仍然有用: