mtools - a collection of tools for manipulating MSDOS files

     mattrib - change MSDOS file attribute flags
     mcd - change MSDOS directory
     mcopy - copy MSDOS files to/from Unix
     mdel - delete an MSDOS file
     mdeltree - delete an MSDOS directory tree
     mdir - display an MSDOS directory
     mformat - add an MSDOS filesystem to a low-level formatted floppy disk
     mlabel - make an MSDOS volume label
     mmd - make an MSDOS subdirectory
     mrd - remove an MSDOS subdirectory
     mmove - move or rename an MSDOS file or subdirectory
     mren - rename an existing MSDOS file
     mtype - display contents of an MSDOS file

     Mtools is a collection of free programs to allow Unix  systems  to  read,
     write,  and  manipulate  files on an MSDOS filesystem (typically a floppy
     disk).  Where reasonable, each program  attempts  to  emulate  the  MSDOS
     equivalent  command.   However,  unnecessary restrictions and oddities of
     DOS  are  not  emulated.   For  instance,  it   is   possible   to   move
     subdirectories from one subdirectory to another.

     MSDOS filenames are optionally composed of a drive letter followed  by  a
     colon,  a subdirectory, and a filename.  Filenames without a drive letter
     refer to Unix files.  Subdirectory names can use either the  '/'  or  '\'
     separator.   The  use  of the '\' separator or wildcards will require the
     names to be enclosed in quotes to protect them from  the  shell.   (Note:
     Wildcards  in  Unix  filenames  should not be enclosed in quotes, because
     here we want the shell to expand them)

  Differences with MSDOS
     The regular expression "pattern matching" routines follow the  Unix-style
     rules.   For  example, '*' matches all MSDOS files in lieu of '*.*'.  The
     archive, hidden, read-only and system attribute bits are  ignored  during
     pattern matching.

     All options use the '-' (minus) flag, not '/' as you'd expect in MSDOS.

     Most mtools commands allow multiple filename  parameters,  which  doesn't
     follow MSDOS conventions, but which is more user-friendly.

  Working Directory
     The mcd command is used to establish the device and the  current  working
     directory  (relative  to  the MSDOS filesystem), otherwise the default is
     assumed to be A:/.  However, unlike MSDOS,  there  is  only  one  working
     directory, and not one per drive.

  VFAT-style long filenames
     This version of mtools supports VFAT style long  filenames.   If  a  Unix
     filename  is  too long to fit in a short DOS name, it is stored as a VFAT
     long name, and a companion short name is generated.  This short  name  is
     what you see when you examine the disk with a pre-7.0 version of DOS.

     The following table shows some examples of short names:

          Unix name     MSDOS name   Reason for the change

          thisisatest   THISISAT     filename too long
          alain.knaff   ALAIN.KNA    extension too long
          prn.txt       XRN.TXT      PRN is a device name
          .abc          X.ABC        null filename
          hot+cold      HOTXCOLD     illegal character

     The initial Unix-style filename (whether long or short)  is  also  called
     primary name, and the derived short name is also called secondary name.


           mcopy /etc/motd a:Reallylongname

     Mtools creates a VFAT entry for Reallylongname, and uses  REALLYLO  as  a
     short  name.   Reallylongname  is  the  primary name, and REALLYLO is the
     secondary name.

          mcopy /etc/motd a:motd

     Motd fits into the DOS filename limits.  Mtools doesn't need to  derivate
     another name.  Motd is the primary name, and there is no secondary name.

     In a nutshell: The primary name is the long name, if one exists,  or  the
     short name if there is no long name.

  Name Clashes
     When writing a file to disk, its long name (primary name) or  short  name
     may  collide with an already existing file or directory.  This may happen
     for all commands which create new directory entries mcopy, mmd, mren, and
     mmove.  When a name clash happens, mtools asks you what it should do.  It
     offers several choices:

          Overwrites the existing file.  It is not  possible  to  overwrite  a
          directory with a file.

          Renames the newly created file.  Mtools  will  prompt  for  the  new

          Renames the newly created file.  Mtools will chose a name by itself,
          without prompting

     skip Gives up on this file, and moves on to the next (if any).

     To chose an option type its first letter at the prompt.   If  you  use  a
     lower case letter, the option only applies for this file only, if you use
     an upper case letter, the option applies to all files.

     You may also chose options (for all files)  on  the  command  line,  when
     invoking mtools:

     -o   Overwrites primary names by default.

     -O   Overwrites secondary names by default.

     -r   Renames primary name by default.

     -R   Renames secondary name by default.

     -a   Autorenames primary name by default.

     -A   Autorenames secondary name by default.

     -s   Skip primary name by default.

     -S   Skip secondary name by default.

     -m   Ask user what to do with primary name.

     -M   Ask user what to do with secondary name.

     By default, the user is prompted if the primary  name  clashes,  and  the
     secondary name is autorenamed.

     If a name clash occurs in a Unix directory, mtools only asks  whether  to
     overwrite the file, or to skip it.

  Case Sensitivity of the VFAT Filesystem
     The VFAT filesystem is able  to  remember  the  case  of  the  filenames.
     However,  filenames  which differ only in case are not allowed to coexist
     in  the  same  directory.   For  example  if  you  store  a  file  called
     LongFileName   on  a  VFAT  filesystem,  mdir  will  show  this  file  as
     LongFileName, and not as Longfilename.  However, if you then try  to  add
     LongFilename  to  the same directory, it will be refused, because case is
     ignored for clash checks.

     The VFAT filesystem allows to  store  the  case  of  a  filename  in  the
     attribute  byte, if all letters of the filename are the same case, and if
     all letters of the extension are the same case  too.   Mtools  uses  this
     information when displaying the files, and also to generate the Unix when
     mcopying to a Unix directory.  This  may  have  unexpected  results  when
     applied  to files written using an pre-7.0 version of DOS:  Indeed, these
     filenames map to all upper case.  This is different from the behavior  of
     the  old  version  of  mtools  which  used  to  generate  lower case Unix

  Minix specific changes
     The following changes have been applied to mtools to make  it  easier  to
     use under Minix:

     Mtools is no longer restricted to just drive letters.  One can use  Minix
     device  names from /dev, or full devices names.  So these three calls are

          mcopy /etc/motd A:
          mcopy /etc/motd fd0:
          mcopy /etc/motd /dev/fd0:

     It is even possible to use files as if they were MS-DOS devices.  A 1.44M
     file can be created with dd and accessed under a name that needs at least
     one '/':

          dd if=/dev/zero of=floppy count=2880
          mformat -t 80 -h 2 -s 18 ./floppy:
          mcopy /etc/motd ./floppy:

     The A: and B: drive letters are encoded into mtools as synonyms  for  fd0
     and  fd1.  Any other drive letter, X for instance, is tried as /dev/dosX,
     which may be created as a (sym)link to the real device name.   (Any  true
     Minix addict would of course use the Minix device name instead of a drive
     letter.)  Mtools has been taught to use the geometry information from the
     Minix  device  driver,  so  no  configuration  files  need to be created.
     Mtools can't even use  configuration  files  under  Minix.   Mformat  can
     create  an MSDOS file system on a hard disk device if one is so inclined.
     It might be better to use FORMAT under MSDOS though.

     All the Mtools commands return 0 on success, 1 on utter failure, or 2  on
     partial  failure.   All  the  Mtools commands perform a few sanity checks
     before going ahead, to make sure that the disk is indeed  an  MSDOS  disk
     (as  opposed  to,  say  an  ext2 or minix disk).  These checks may reject
     partially corrupted disks, which might otherwise still be  readable.   To
     avoid these checks, set the MTOOLS_SKIP_CHECK environmental variable.

     mattrib(1), mcd(1), mcopy(1), mdel(1),  mdir(1),  mformat(1),  mlabel(1),
     mmd(1), mmount(1), mmove(1), mrd(1), mren(1), mtype(1).

     An unfortunate side effect  of  not  guessing  the  proper  device  (when
     multiple  disk  capacities  are supported) is an occasional error message
     from the device driver.  These can be safely ignored.