Manejo de archivos DOS en GNU/Linux
Domingo , 19 de Octubre de 2003. Enrique Barbeito García
En la anotación anterior veíamos cómo poder convertir ficheros de texto con formato DOS a formato UNIX. Puede darse el caso que queramos trabajar con ficheros de texto tanto en un sistema (UNIX) como en otro (DOS) pero no queramos, digamos, modificar la naturaleza del archivo y poder trabajar con el (bajo GNU/Linux) casi como si en un entorno MS-DOS se tratara.
Este tipo de casos se suelen dar con frecuencia en las universidades donde, en ciertas asignaturas de programación, las prácticas que se piden requieren de herramientas propias de sistemas UNIX y que deben funcionar sobre este entorno. Sin embargo muchos de los estudiantes prefieren realizarlas en casa, bajo sus sistemas Windows, y finalizarlas/probarlas más tarde con las herramientas requeridas por los profesores (al menos yo he sido testigo de este tipo de situaciones).
Para situaciones semejantes, se desarrollaron un grupo de aplicaciones con el fin de poder trabajar con ficheros DOS en GNU/Linux como si de un entorno MS-DOS se tratara. Este conjunto de herramientas recibe el nombre de mtools y son capaces de manejar diskettes sin necesidad de ser montados (en la mayoría de casos solo root puede montar dispositivos; en una universidad, por ejemplo, donde entras a un entorno UNIX como usuario normal, no te queda otra opción que emplear las mtools en la mayoría de los casos).
Veamos pues el listado de herramientas que compone el paquete mtools;
- mattrib , muestra atributos de archivo para el archivo que se le indique.
- mbadblocks , sirve para buscar y marcas aquellos bloques defectuosos para un diskette. Pensado para realizar tras un mformat.
- mcd , cambie de directorio a la nueva ruta especificada.
- mcopy , copia los archivos que se le indiquen a la ruta especificada.
- mdel , elimina el/los archivo/s que se le indique
- mdeltree , elimina un directorio indicado y todos sus subdirectorios y/o archivos que contenga.
- mdir , Muestra por pantalla el listado de archivos y directorios
- mformat , formatea un disket
- minfo , Muestra los parámetros de un sistema de ficheros DOS, como el número de sectores, cabezas y cilindros.
- mlabel , etiqueta el sistema de archivos DOS
- mmd , crea un nuevo directorio
- mmount , se emplea para montar un disco de MS-DOS.
- mmove , mmove se emplea para mover o renombrar un fichero o subdirectorio existente de MS-DOS.
- mrd , elimina un directorio. Este debe estar vacío.
- mren , rennombra un archivo que se le indique
- mtype , muestra por pantalla el contenido de un determinado fichero de texto
Lo cierto es que hay varias aplicaciones más a parte de las anteriormente listadas y comentadas de un modo breve. Si se desea más información acerca de las posibilidades que ofrece cada una de las aplicaciones listadas así como de las no mencionadas, es muy recomendable mirar las excelentes páginas MAN sobre mtools
Bueno, vemos algún que otro ejemplo de uso. Metemos un disket con un par de prácticas de programación y alguna que otra cosa más. El contenido ha sido grabado sobre un diskette formateado con un sistema de archivos FAT32 (bajo Windows) y queremos trabajar con él directamente en nuestro GNU/Linux. Miremos su contenido simplemente introduciendo el diskette en la diskettera y sin montarla tecear:
$ mdir a:/ Volume in drive A has no label Directory for A:/ p1a cc 1057 03-04-2003 9:08 p1a.cc p1b cc 571 01-01-1988 1:41 p1b.cc fips06-14-2003 0:15 3 files 1 628 bytes 1 282 048 bytes free
Fijémonos en qué formato aparece el listado de elemento del diskette :) claramente es MS-DOS. Fijémonos en que tengo un directorio fips/ dentro de mi disket. Vamos a borrarlo y seguidamente hagamos otro mdir para ver cómo queda la cosa:
$ mdeltree a:/fips ; mdir a:
Volume in drive A has no label
Directory for A:/
p1a
cc 1057 03-04-2003
9:08 p1a.cc
p1b
cc 571 01-01-1988
1:41 p1b.cc
2
files
1 628 bytes
1 455 104 bytes free
Jeje, ahí lo tenéis. Ese directorio contenía un fichero llamado fips.exe. Si hubiéramos empleado mrd muy seguramente nos habría dado un mensaje de error (que pena de no haberlo probado antes :\).
Para finalizar –que ya me estoy pasando– fijaos en una última cosa. La manera en que se trabajan con los distintos niveles de ruta. Mientras que en MS-DOS se emplean las barras invertidas para ir moviéndose entre directorios/subdirectorios (A:\cosas\multimedia\mp3\) con las mtools trabajamos con las barras normales, tal y como en UNIX (A:/cosas/multimedia/mp3/)
Más información: $ man mtools