NOME
Mtools − collezione di programmi per manipolare file MSDOS
SINTASSI
mattrib
− cambia gli attributi di un file MSDOS
mbadblocks − verifica un dischetto, e segna i
blocchi erronei nella FAT
mcd − cambia la directory MSDOS
mcopy − copia file da MSDOS a Unix e viceversa
mdel − cancella un file MSDOS
mdir − mostra una directory MSDOS
mformat − aggiunge un file system MSDOS a un
dischetto formattato
a basso livello
mlabel − crea l’etichetta su un disco MSDOS
mmd − crea una subdirectory MSDOS
mmount − monta un disco MSDOS
mrd − rimuove una subdirectory MSDOS
mmove − sposta o rinomina un file o una
subdirectory MSDOS
mren − rinomina un file MSDOS già esistente
mtype − mostra il contenuto di un file MSDOS
mtest − verifica e mostra la configurazione
DESCRIZIONE
Gli Mtools sono una collezione di programmi di pubblico dominio che permettono a tutti i sistemi Unix di leggere, scrivere e manipolare file su un file system MSDOS (tipicamente un dischetto). Ove sia necessario, ogni programma prova a simulare l’equivalente comando MSDOS. Non sono comunque simulate restrizioni e stranezze del DOS. Ad esempio, è possibile spostare subdirectory da una subdirectory ad un’altra.
Opzionalmente, i nomi di file MSDOS possono essere composti dalla lettera del drive, seguita da un due punti, una subdirectory e un nome di file. Nomi di file privi della lettera del drive fanno riferimento a file Unix. Nei nomi delle subdirectory si può usare come separatore sia ’/’ che ’\’. L’uso del separatore ’\’ o di metacaratteri potrebbe richiedere che i nomi siano racchiusi fra virgolette per proteggerli dalla shell (N.B.: i metacaratteri nei nomi di file Unix non dovrebbero essere racchiusi tra virgolette, poiché in questo caso si vuole che la shell le espanda).
DIFFERENZE CON MSDOG
Le routine di corrispondenza dei modelli delle espressioni regolari seguono le regole di stile Unix. Per esempio, ’*’ indica tutti i file MSDOS al posto di ’*.*’. Gli attributi archive, hidden, read-only e system vengono ignorati durante le corrispondenze.
Tutte le opzioni usano il flag ’-’ (meno), e non ’/’ come ci si aspetta dall’MSDOS.
Molti degli Mtools permettono di specificare più nomi di file come parametri, il che non segue le convenzioni dell’MSDOS, ma è più user-friendly.
DIRECTORY DI LAVORO
Il comando mcd è usato per stabilire il dispositivo e la directory di lavoro corrente (relativa ad un file system MSDOS), altrimenti di default viene assunto A:/. Comunque, diversamente da MSDOS, c’è una sola directory di lavoro, e non una per disco.
Nomi di file lunghi in stile VFAT
Questa versione
degli Mtools supporta i nomi di file lunghi in stile VFAT.
Se un nome di file Unix è troppo lungo per stare nel
nome DOS corto, è salvato come un nome lungo VFAT, ed
è generato un nome corto di supporto. Questo nome
corto è quello che si vedrà esaminando il
disco con una versione del DOS precedente alla 7.0.
La seguente tabella mostra alcuni esempi di nomi corti:
Il nome di file iniziale in stile Unix (sia lungo che corto) è anche detto nome primario, e il nome di file corto derivato è anche detto nome secondario.
Esempi:
mcopy /etc/motd a:Reallylongname
L’Mtools crea una voce VFAT per Reallylongname, e usa REALLYLO come nome corto. Reallylongname è il nome primario, e REALLYLO e il nome secondario.
mcopy /etc/motd a:motd
motd ci sta dentro i limiti dei nomi di file MSDOS. L’Mtools non ha bisogno di derivare un’altro nome: motd è il nome primario, e non c’è il nome secondario.
In parole povere: il nome primario è il nome lungo, se esiste, oppure il nome corto se non c’è il nome lungo.
COLLISIONE FRA NOMI
Quando si scrive un file su disco, il suo nome lungo (nome primario) o il suo nome corto potrebbe coincidere con quello di un file o di una directory esistenti. Ciò può succedere con tutti i comandi che creano nuove voci in una directory: mcopy, mmd, mren, mmove, mwrite e mread.
Quando avviene
una collisione fra i nomi, l’Mtools chiede cosa deve
fare. Sono possibili diverse scelte:
overwrite
Sovrascrive il file esistente. Non è possibile sovrascrivere una directory con un file.
rename |
Rinonima il nuovo file creato. L’Mtools chiederà il nuovo nome per il file. |
autorename
Rinomina il nuovo file creato. L’Mtools sceglierà da solo il nome, senza chiedere niente.
skip |
Tralascia questo file, e passa al successivo (se c’è). |
Per scegliere una opzione si immetta la sua iniziale al prompt. Se viene inserita una minuscola l’opzione sarà applicata solo al file in esame, mentre se si preme una maiuscola l’opzione verrà applicata a tutti i file.
È possibile scegliere le opzioni (per tutti i file) dalla riga di comando, quando si lancia un Mtools:
-o |
Sovrascrive di default il nome primario. | ||
-O |
Sovrascrive di default il nome secondario. | ||
-r |
Rinomina di default il nome primario. | ||
-R |
Rinomina di default il nome secondario. | ||
-a |
Automaticamente rinomina di default il nome primario. | ||
-A |
Automaticamente rinomina di default il nome secondario. | ||
-s |
Tralascia di default il nome primario. | ||
-S |
Tralascia di default il nome secondario. | ||
-m |
Chiede all’utente cosa fare con il nome primario. | ||
-M |
Chiede all’utente cosa fare con il nome secondario. |
Di default, l’utente viene interrogato nel caso di una collisione fra nomi primari, mentre il nome secondario è rinominato automaticamente.
Se avviene una collisione con una directory Unix, l’Mtools chiede se deve sovrascrivere il file o tralasciarlo.
SENSIBILITÀ AL CASE DEL FILESYSTEM VFAT
Il file system VFAT è in grado di ricordare il case dei nomi di file. Comunque, nomi di file che differiscano solo nel case non possono coesistere nella stessa directory. Per esempio se si salva una file chiamato LongFileName su un file system VFAT, mdir mostrerà questo file come LongFileName, e non come Longfilename. Comunque, se poi si prova ad aggiungere LongFilename nella stessa directory, questi sarà rifiutato, poiché il case è ignorato nella verifica delle collisioni.
Il file system VFAT permette di salvare nel byte di attributo il case del nome del file, se tutte le lettere del nome rispecchiano lo stesso case e se ciò avviene pure nell’estensione. Gli Mtools usano queste informazioni quando mostrano i nomi dei file, e anche per generare il nome Unix quando questi vengono ’’mcopy-ati’’ in una directory Unix. Ciò può avere risultati inaspettati quando viene applicato a file scritti con una versione di DOS precedente alla 7.0: in tal caso i nomi di file saranno resi tutti con le maiuscole. Ciò è diverso dal comportamento della vecchia versione degli Mtools che usava queste informazioni per generare nomi di file Unix con le minuscole.
DISCHI XDF (SOLO PER LINUX)
Xdf è un formato ad alta capacità supportato da OS/2. Può tenere 1840 kB per disco. Ciò non è moltissimo confrontato con i migliori formati 2m, ma ha il principale vantaggio di essere veloce: 600 millisecondi per traccia. Perciò è più veloce del buon vecchio formato a 21 settori, e quasi veloce quanto il formato standard a 18 settori. Per poter accedere a questi dischi, si setti per il disco la variabile use_xdf. Per avere i dettagli su come fare si veda Mtools(5). L’accesso veloce ai dischi Xdf è possibile solo con kernel più recenti del 1.3.34.
Avvisi per i distributori: Se gli Mtools sono compilati su un kernel Linux più recente del 1.3.34, non funzioneranno su kernel più vecchi. Comunque, se sono stati compilati su un kernel più vecchio, funzioneranno ancora su kernel più recenti ad eccezione del fatto che l’accesso agli Xdf sarà più lento. Si raccomanda agli autori delle distribuzioni di includere Mtools compilati con un kernel più vecchio del 1.3.34, fino a che non sarà uscito il 2.0. Quando ci sarà il 2.0, potranno (e dovrebbero) essere distribuiti i binari degli Mtools compilati su kernel più recenti. Gli eseguibili degli Mtools compilati su kernel più vecchi del 1.3.34 non gireranno su nessuno dei kernel 2.1 o successivi.
CODICI DI USCITA
Tutti i comandi Mtools restituiscono 0 in caso di successo, 1 in caso di completo fallimento, o 2 in caso di fallimento parziale. Tutti i comandi Mtools eseguono, prima di proseguire, qualche verifica sullo stato del disco, e per essere sicuri che questi sia un disco MSDOS (invece di un disco ext2 o minix). Queste verifiche possono rifiutare dischi parzialmente corrotti, i quali potrebbero essere ancora leggibili. Per evitare questi controlli, s’imposti la variabile d’ambiente MTOOLS_SKIP_CHECK.
VEDERE ANCHE
mattrib(1), mbadblocks(1), mcd(1), mdel(1), mformat(1), mmove(1), mrd(1), mren(1), mtype(1), mcopy(1), mdir(1), mlabel(1), mmd(1), mmount(1)
BACHI
Occasionalmente, a causa di uno sfortunato effetto collaterale dovuto ad una erronea scelta dell’esatto dispositivo (che può accadere quando sono supportate diverse capacità dei dischi), il device driver può produrre alcuni messaggi d’errore. Possono essere tranquillamente ignorati.
Il codice di verifica della fat checking si pianta su dischi ’’mformat-ati’’ a 1.72 MB con versioni degli Mtools precedenti alla 2.0.7. Si setti la variabile d’ambiente MTOOLS_FAT_COMPATIBILITY per saltare la verifica della fat.
Il supporto per le varianti per i S.O. non Linux non è stato testato molto a lungo. Potrebbe contenere bachi, o addirittura non funzionare del tutto.