V. Les MTools

Par Hugo ETIEVANT


  1. Introduction
  2. Formats de fichier
  3. Les commandes
    1. Attributs de fichiers (mattrib)
    2. Copie de fichiers (mcopy)
    3. Suppression de fichiers (mdel)
    4. Listage de répertoire (mdir)
  4. Résumé des commandes

Introduction

Les MTools sont un ensemble d'instructions qui permettent de travailler sous Unix avec des disquettes au format MS-DOS. Le système de fichier (FAT) d'étant pas codé de la même façon sous Dos et sous Unix, il est nécessaire de faire des convertions de format de données lorsqu'on souhaite transférer des fichiers du système Unix vers les compatibles IBM.

Ces commandes sont les homoloques de celles du Dos dont vous reconnaîtrez par ailleurs la syntaxe.


Formats de fichier

Sous Unix, les fins de de ligne des fichiers au format texte sont codées par un saut de ligne système (NewLine), alors que sous Dos, on a un saut de ligne plus un retour chariot (Carriage Return) ainsi qu'un caractère de fin de fichier (ASCII n°26 : Ctrl+Z).

Ces différences rendent illisibles les fichiers d'un système à un autre, c'est pourquoi il est nécessaire d'utiliser les MTools pour effectuer les convertions adéquates.


Les commandes

Toutes les commandes qui suivent à l'exception de mcopy ne s'appliquent qu'au système de fichier Dos et ne peuvent pas manipuler les fichiers du système de fichier Unix.

Attributs de fichiers (mattrib)

La commande mattrib permet de changer les attributs d'un fichier d'un système de fichier compatible Dos. Par exemple, si vous souhaitez changer les attributs d'un fichier situé sur une disquette Windows, cette commande est toute indiquée. A noter que ces attributs n'ont rien avoir avec les droits de fichier du système Unix.

Spécifiez en paramètre le nom du fichier et le code attribut précédé du signe - ou + respectivement pour supprimer ou ajouter l'atribut spécifié.

Code attributDescription
aarchive
hcaché
rlecture seule
ssystème

Les noms de fichiers peuvent contenir des méta-caractères ou être des réperoires. L'attribut / (slash) permet de parcours de manière récursive les sous-réperoires.

Exemples :
mattrib a:monprog.c +r pour protéger en écriture le fichier monprog.c situé sur le lecteur de disquette.
mattrib a:data +h +r -a -/ pour cacher, protéger en écriture et supprimer l'attibut archive de tous les fichiers du répertoire data et de ses sous-répertoires.

Copie de fichiers (mcopy)

Cette commande permet de copier des fichiers depuis un lecteur de disquette vers le système Unix et inversement.

Vous pouvez faire une copie d'un fichier sur le même volume.

Exemple : mcopy a:lettre.doc a:lettre.bak

Ou bien sauvegarder des fichiers de votre compte Unix vers une disquette.

Exemple : mcopy *.c a:

Et inversement, copier des fichiers d'une disquette vers votre compte Unix.

Exemple : mcopy a:\data\images\*.gif ../clipart

Lorsqu'aucun chemin n'est spécifié, c'est dans le répertoire courant . du système Unix que les fichiers à copier sont recherchés ou c'est dans ce dernier qu'ils sont copiés. Si dans la spécification de chemin a: il manque celle de fichier alors tous les fichiers du volume inséré dans lecteur de disquette seront automatiquement copiés.

Les exemples suivants sont donc équivalents :
mcopy a:* .
mcopy a: .
mcopy a:

Pour copier les sous-répertoires d'un réperoire passé en paramètre à mcopy, utilisez l'attribut / (slash).

Exemple : mcopy ../*.c *.h -/ a:\TpC\ pour copier tous les fichiers écrits en langage C (fichiers sources en .c et d'entêtes en .h) du répertoire parent plus ceux des sous-répertoires successifs. Les fichiers sont copiés dans le réperoire TpC du lecteur de disquette qui est ici nommé a:.

L'attribut p (preserve) préserve les attributs des fichiers copiés. Seuls les droits du propriétaire (et non ceux du groupe ou des autres) sont préservés lors de la copie vers une disquette. Et réciproquement, les attributs d'un fichier d'un système Dos sont convertis en droits propriétaires.

Exemple : mcopy *.txt a: -p tous les fichiers textes sont copiés dans la disquette et tous les droits propiétaires sont convertis en leurs attributs Dos équivalents.

Par défaut, le détail de la copie n'est pas affiché. Pour forcer l'affichage des noms de fichiers copiés, utilisez l'attribut v (verbose).

Exemple : mcopy a: -/ -v pour copier tous ce que contient la disquette dans le répertoire courant et en forçant l'affichage des noms et chemins de fichiers copiés.

Le plus important reste l'attribut t (translate) qui convertit les formats de fichiers texte Unix en format Dos et réciproquement. Car la convertion n'est pas faite par défaut par les mtools.

Exemple : mcopy *.c a: -t

Problème de la convertion des noms de fichier dans le sens Unix vers Dos :

  • Le système de fichier Dos n'admet pas comme valide un certain nombre de caractères illégaux qui pourtant sont acceptés par le système Unix, ceux-ci sont alors convertis en soulignement (_).
  • Les points (.) qui ne peuvent être interpétés comme des séparateurs de nom/extention de fichier Dos sont supprimés.
  • Les noms de fichiers sont convertis au format 8.3
  • Un nombre après tilde (~nombre) est inclu dans le nom dans le cas où sa longueur excède le format 8.3

Nom de fichier
sous système Unix
Nom de fichier
sous Dos
toto.cTOTO.C
.yoyo.txtYOYO.TXT
monprogrammeamoi.cMONPRO~1.C
tata+moiTATA_MOI
M[5].25/12/200.txtM_5__2~1.TXT

Suppression de fichiers (mdel)

La commande mdel permet de supprimer un ou des fichier(s) Dos. Elle ne peut pas supprimer de fichiers du système Unix.

Elle demande confirmation pour les fichiers qui possèdent l'attribut lecture seule.

Pour afficher le détail des fichiers supprimer, spécifiez l'attribut v. Il est grandement conseillé de ne jamais l'omettre afin de toujours savoir quels sont les fichiers qui seront perdus !

Exemple : mdel a:*.doc -v.

Listage de répertoire (mdir)

Permet de lister les fichiers d'un répertoire Dos. N'accepte en paramètre que des identificateurs de répertoire et ne s'applique pas au système de fichier Unix.

Cette commande affiche à l'écran la liste des fichiers et sous-répertoires d'un réperoire Dos ainsi que des informations additionnelles telles que la taille, la date et l'heure de dernière modification de chaque fichier. Mais aussi le nombre de fichiers et de réperoires et la quantité de mémoire libre sur la disquette. Tout comme la commande dir de MS-Dos.

Exemple : mdir a:\ pour afficher la liste des fichiers du réperoire racine de la disquette.

Pour lister de façon récursive les sous-réperoires, rajouter l'attribut -/.

Il est possible de n'afficher que les fichiers cachés : -a.

Pour ne pas encombrer l'affichage des informations additionnelles grace à l'attribut -w.


Résumé des commandes

CommandeDescription
mattribChange les attributs de fichiers Dos.
[+a/-a](archive) [+h/-h](hidden) [+r/-r](read only) [+s/-s](system) [-/](recurse forder)
mcdChange de répertoire dans l'arboraissance Dos.
mcopyCopie de fichiers entre Linux et Dos et inversement. [-v] (verbose) [-p] (preserve) [-t] (translate) [-/] (recurse)
mdelSupression de fichiers Dos. [-v] (verbose)
mdirAffiche le contenu d'un répertoire Dos. [-a] (hidden files) [-w] (wide output) [-/] (recurse)
mformatFormat un lecteur au format Dos.
mlabelAffecte un nom de volume Dos.
mmdCréation d'un répertoire dans le système de fichier Dos.
mrdSupression d'un répertoire.
mrenRenommer un fichier.
mtypeAffiche le contenu d'un fichier Dos.
mmoveDéplace un fichier.

Toutes ces commandes acceptent les méta-caractères * et ? dont l'utilisation suit les règles du système Unix et non pas Dos. Par exemple * remplace *.*.

Lors du passage de paramètres optionnels, c'est le préfixe - (tiret) d'Unix et non pas le / (slash) du Dos qui permet d'introduire les paramètres.