mtools(1) — Commands
NAME
mtools − Provides a collection of tools for manipulating DOS files
DESCRIPTION
The mtools commands are a public domain collection of programs that let you read, write, and manipulate files on a DOS file system (typically a diskette) from a UNIX system. Each command attempts to emulate the DOS equivalent command as closely as possible. The following commands are available:
dos2unix
Converts a DOS file to UNIX
mattrib
Changes DOS file attribute options
mcd
Changes or reports the DOS working directory
mcopy
Copies DOS files to and from a UNIX operating system
mdel
Deletes a DOS file
mdir
Displays contents of a DOS directory
mdiskcopy
Copies a diskette to another diskette as a bit-image copy
mformat
Adds a DOS file system to a low-level formatted diskette
mkmanifest
Creates a shell script to restore UNIX file names from DOS
mlabel
Labels a DOS volume
mmd
Makes a DOS directory
mrd
Removes a DOS directory
mread
Performs a low level read (copy) of a DOS file to UNIX
mren
Renames an existing DOS file
mtype
Displays the contents of a DOS file
mwrite
Performs a low level write (copy) of a UNIX file to DOS
unix2dos
Converts a UNIX file to DOS format
DOS file names optionally are composed of a drive letter followed by a colon, a subdirectory, and a file name. Subdirectory names can use either the ’/’ or ’\’ separator. The use of the ’\’ separator or wildcards requires the names to be enclosed in quotes to protect them from the shell.
The regular expression “pattern matching” routines follow the UNIX rules. For example, an asterisk (∗) matches all DOS files in place of asterisks separated by a dot (.) such as ∗.∗. The archive, hidden, read-only and system attribute bits are ignored during pattern matching.
Not all UNIX file names are supported in the DOS world. The mtools commands may have to change UNIX names to fit the DOS file name conventions. Most commands provide the verbose option (−v), that displays new file names if they have been changed. The following table shows some examples of file name conversions:
| UNIX name | DOS name | Reason for the change |
| thisisatest | THISISAT | file name too long |
| file.stuff | FILE.STU | extension too long |
| prn.txt | XRN.TXT | PRN is a device name |
| .abc | X.ABC | null file name |
| hot+cold | HOTXCOLD | illegal character |
All options use the minus (-) option, not the slash (/) as provided under DOS conventions.
The mcd command is used to establish the device and the current working directory (relative to the DOS file system), otherwise the default is assumed to be A:\.
All the mtools commands return 0 on success and 1 on complete failure.
All mtools require a floppy diskette properly installed on the system. All mtools facilities address a device named /dev/disk/floppy, therefore, a symbolic link between the floppy device and /dev/disk/floppy is also required.
RESTRICTIONS
If the proper device is not specified (when multiple disks capacities are supported), an error message from the device driver may be displayed. This message can be ignored.
EXAMPLES
1.If the diskette is a SCSI attached floppy drive designated device rz13, the following example sets up a floppy diskette for access by the mtools commands:
# cd /dev
# ./MAKEDEV disk/dsk13
You can then link the device to /dev/disk/floppy as follows:
# ln -s /dev/rdisk/dsk/13c /dev/disk/floppy
2.The following example sets up a floppy diskette for access by the mtools commands if the floppy drive is FDI attached:
# cd /dev
# ./MAKEDEV fd0
You can then link the device to /dev/disk/floppy as follows:
# ln -s /dev/rfd0c /dev/disk/floppy
3.The following example also sets up a SCSI attached floppy diskette for access by the mtools commands:
# /usr/sbin/mknod /dev/rdisk/dsk13c c 8 21506
You can then link the device to /dev/disk/floppy as follows:
# ln -s /dev/rdisk/dsk13c /dev/disk/floppy
Remember to use the appropriate SCSI name and minor number for your configuration. In this example, this is dev/rdisk/dsk13c.
Caution
This method is recommended for use only by experienced system administrators.
SEE ALSO
Commands: dos2unix(1), ln(1), mattrib(1), mcd(1), mcopy(1), mdel(1), mdir(1), mdiskcopy(1), mformat(1), mlabel(1), mmd(1), mrd(1), mread(1), mren(1), mtype(1), mwrite(1), unix2dos(1)
Floppy disk interface: fd(7)