First revision...
Этот коммит содержится в:
родитель
1e1824639c
Коммит
cfa9226b2b
204
vfs/extfs/README.it
Обычный файл
204
vfs/extfs/README.it
Обычный файл
@ -0,0 +1,204 @@
|
||||
Scrivere scripts per l'esterno vfs di Midnight Commander
|
||||
(Traduzione a cura di Marco Ciampa (C) GNU 2000 - it@li.org)
|
||||
|
||||
NOTA IMPORTANTE: ci possono ancora essere alcuni bachi in extfs.
|
||||
Buon divertimento.
|
||||
|
||||
A cominciare dalla versione 3.1 il Midnight Commander comprende il
|
||||
cosiddetto extfs, che altri non ш che un filesystem virtuale. Questo
|
||||
sistema consente di creare molto facilmente nuovi filesystem virtuali
|
||||
per MC della GNU.
|
||||
|
||||
Tale lavoro ш composto di due parti fondamentali:
|
||||
|
||||
Modifica di $(libdir)/extfs/extfs.ini.
|
||||
Creazione di uno script shell/programma per gestire le richieste.
|
||||
(Nota: $(libdir) dovrebbe essere sostituita con il percorso libdir
|
||||
corrente memorizzato quando configurato o compilato, come
|
||||
/usr/local/lib/mc o /usr/lib/mc).
|
||||
|
||||
La prima ш molto facile:
|
||||
Assegnate un suffisso vfs. Per esempio, se avete un file .zip e vorreste
|
||||
vedere cosa c'ш dentro di esso, il percorso sarebbe
|
||||
|
||||
/qualsiasipercorso/my.zip#uzip/unpercorso/...
|
||||
|
||||
Poi basta aggiungere una linea nel file extfs.ini contenente solo quella
|
||||
estensione. Se il vostro vfs non richiede file di lavoro, aggiungete
|
||||
':' alla fine del nome.
|
||||
|
||||
In questo esempio, .zip ш il suffisso, ma ш possibile chiamare vfs 'uzip'.
|
||||
Perchщ? Beh, quello che fa vfs ш essenzialmente UNzip. UN ш troppo lungo
|
||||
cosь ш stato scelto U. Notare che in futuro un filesystem come zip potrр
|
||||
esistere: prenderр l'intero albero e creerр un file zip da esso. Cosь
|
||||
/usr:zip sarр un file zip contenente l'intero albero /usr.
|
||||
|
||||
La seconda potrebbe richiedere un po' di conoscenza di programmazione shell/c:
|
||||
si deve creare un prefisso di programma (con i permessi di esecuzione) in
|
||||
$(libdir)/extfs (nel nostro esempio $(libdir)/extfs/uzip).
|
||||
|
||||
|
||||
* Comandi che dovrebbero essere implementati nello script shell
|
||||
---------------------------------------------------------------
|
||||
|
||||
Ritorno di zero dallo script a completamento avvenuto del comando,
|
||||
altrimenti diverso da zero per fallimento o comando non supportato.
|
||||
|
||||
$libdir/extfs/prefix command [arguments]
|
||||
|
||||
* Comando: list nomearchivio
|
||||
|
||||
Questo comando dovrebbe elencare il contenuto completo dell'archivio nel seguente
|
||||
formato (elenco ls -l un po' modificato)
|
||||
|
||||
AAAAAAA NNN OOOOOOOO GGGGGGGG SSSSSSSS DATETIME [PATH/]FILENAME [-> [PATH/]FILENAME[/]]]
|
||||
|
||||
dove (le cose in [] sono opzionali):
|
||||
|
||||
AAAAAAA ш la stringa permessi come in ls -l
|
||||
NNN ш il numero di collegamenti
|
||||
OOOOOOOO ш il proprietario (sia UID che nome)
|
||||
GGGGGGGG ш il gruppo (sia GID che nome)
|
||||
SSSSSSSS ш la dimensione del file
|
||||
FILENAME ш il nome del file
|
||||
PATH ш il percorso dalla radice dell'archivio senza la slash iniziale (/)
|
||||
DATETIME ha uno dei seguenti formati:
|
||||
Mon DD hh:mm, Mon DD YYYY, Mon DD YYYY hh:mm, MM-DD-YY hh:mm
|
||||
|
||||
dove Mon ш il nome del mese a tre caratteri in inglese, DD giorno
|
||||
1-31, MM mese 01-12, YY anno a due cifre, YYYY anno a quattro cifre,
|
||||
hh ore e mm minuti.
|
||||
|
||||
Se la -> [PATH/]FILENAME parte ш presente, significa:
|
||||
|
||||
Se i permessi cominciano con l (elle) allora ш il nome al quale il
|
||||
collegamento simbolico punta. Se questo percorso comincia con un prefisso
|
||||
vfs di MC allora ш un collegamento simbolico verso l'altro filesystem virtuale
|
||||
(se si vuole specificare un percorso dalla radice locale, si usa local:/percorso
|
||||
invece di /percorso perchш /percorso significa dalla radice dell'archivio
|
||||
elencato).
|
||||
|
||||
Se i permessi non cominciano con l ma un numero di collegamenti maggiore di
|
||||
uno allora significa che questo file dovrebbe essere collegato 'hard' con
|
||||
l'altro file.
|
||||
|
||||
* Comando: copyout nomearchivio nomefilememorizzato estraea
|
||||
|
||||
Questo dovrebbe estrarre dall'archivio nomearchivio nel file di
|
||||
nome nomefilememorizzato (possibilmente con percorso se non collocato
|
||||
nella radice dell'archivio [questo ш sbagliato. extfs corrente toglie il
|
||||
percorso! -- pavel@ucw.cz]) nel file estraea.
|
||||
|
||||
* Comando: copyin nomearchive nomefilememorizzato filesorgente
|
||||
|
||||
Questo dovrebbe aggiungere a nomearchivio il filesorgente con
|
||||
nome nomefilememorizzato nell'archivio.
|
||||
|
||||
Nota importante: nomearchivio negli esempi suddetti puЄ non avere
|
||||
l'estensione che ci si aspetta, come potrebbe succedere che il nomearchivio
|
||||
sia qualcosa del tipo /tmp/f43513254 o qualsiasi altra cosa.
|
||||
Ad alcuni archiviatori non piace ciЄ per cui dovrЄ trovare qualche
|
||||
artifizio.
|
||||
|
||||
* Comando: rm nomearchivio nomefilememorizzato
|
||||
|
||||
Questo dovrebbe rimuovere il nomefilememorizzato da nomearchivio.
|
||||
|
||||
* Comando: mkdir nomearchivio nomedir
|
||||
|
||||
Questo dovrebbe creare una nuova directory chiamata nomedir dentro
|
||||
nomearchivio.
|
||||
|
||||
* Comando: rmdir nomearchivio nomedir
|
||||
|
||||
Questo dovrebbe rimuovere un'esistente directory nomedir. Se la directory
|
||||
non ш vuota, mc la cancellerр ricorsivamente (possibilmente avvertendo).
|
||||
|
||||
* Comando: run
|
||||
|
||||
Nondocumentato :-)
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
Non dimenticate di impostare questo file come eseguibile (con chmod 755
|
||||
QuestoFile per esempio)
|
||||
|
||||
Per una struttura generale di eseguibile vedere i filesystems simili
|
||||
ai vostri.
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
Se nel costruire queste routine verranno fatti degli errori mc non mostrerр
|
||||
righe di stampa maldefinite. Questo puЄ fuorviare il programmatore nella
|
||||
ricerca dei difetti. Visto che questa routine ш uno script shell eseguibile
|
||||
essa puЄ essere lanciata dalla riga di comando indipendentemente da mc ed il
|
||||
risultato mostrato in console o redirezionato in un file.
|
||||
|
||||
* Messa in uso
|
||||
----------------------------------------------------------
|
||||
Il file .mc.ext nella directory home e nella directory utente di mc
|
||||
(normalmente /usr/local/lib/mc), contiene le istruzioni per le operazioni
|
||||
sui files a seconda dell'estensione. E' ben documentato in altri file in
|
||||
questa distribuzione perciЄ qui si darр solo qualche nota specificatamente
|
||||
sull'uso del File System Virtuale che si ш appena creato.
|
||||
|
||||
Vi sono voci in .mc.ext che definiscono alcune operazioni che possono essere
|
||||
svolte su un file da un pannello di mc. Tipicamente sono annotate con un
|
||||
simbolo di cancelletto ed un'estensione come questa:
|
||||
|
||||
# zip
|
||||
|
||||
Vi deve essere un modo per trovare il file per estensione cosь la
|
||||
prossima linea fa ciЄ. Essenzialmente dichiara: "identifica la stringa ".zip"
|
||||
o (|) ".ZIP" alla fine del nome del file:
|
||||
|
||||
regex/\.(zip|ZIP)$
|
||||
|
||||
Le operazioni seguono. Esse devono essere indentate da almeno uno spazio oppure
|
||||
un tabulatore. In particolare l'operazione di apertura (Open) userр ora il nuovo
|
||||
file system virtuale per fare cd su di esso come in questo:
|
||||
|
||||
Open=%cd zip:%d/%p
|
||||
|
||||
Questa ш la linea usata quando un file viene evidenziato in un pannello e
|
||||
l'utente preme <Invio>. Il contenuto dell'archivio dovrebbe essere come
|
||||
se si fosse in una vera directory e potesse essere manipolata in tal modo.
|
||||
Il resto della linea riguarda l'uso del tasto di Vista F3:
|
||||
|
||||
View=%view{ascii} unzip -v %f
|
||||
|
||||
con un'icona opzionale per X:
|
||||
|
||||
Icon=zip.xpm
|
||||
|
||||
e con un'operazione per estrarre il contenuto del file preso da una selezione
|
||||
file a menu:
|
||||
|
||||
Extract=unzip %f '*'
|
||||
|
||||
Questo ш solo un esempio. La voce corrente per i file .zip ha una selezione
|
||||
menu di 'Unzip' che potrebbe essere usata al posto di 'Extract'. Cosa va qui
|
||||
dipende da quali voci si hanno o si aggiungono al menu di sistema ed inoltre
|
||||
c'ш ancora un particolare. La somma di questo ш nella voce .mc.ext:
|
||||
|
||||
# zip
|
||||
regex/\.(zip|ZIP)$
|
||||
Open=%cd zip:%d/%p
|
||||
View=%view{ascii} unzip -v %f
|
||||
Icon=zip.xpm
|
||||
Extract=unzip %f '*'
|
||||
|
||||
Aggiungere una voce come questa al file .mc.ext nella directory home dell'utente.
|
||||
Se volete che altri la vedano, aggiungetela nel file mc.ext nella directory di
|
||||
sistema di mc spesso in /usr/local/lib/mc/mc.ext. Notare che questo file non
|
||||
ha un punto iniziale.
|
||||
|
||||
Una volta che tutto questo ш fatto e le cose sono al loro posto, uscite da mc
|
||||
se lo state usando e fatelo ripartire dimodoche possa prendere le nuove
|
||||
impostazioni.
|
||||
|
||||
Questo ш tutto. La parte pi∙ dura ш fare una funzione di elenco che ordini
|
||||
l'uscita di un comando di listato di sistema e lo converta in un formato che
|
||||
permetta ad mc di poterlo usare. Attualmente viene usato awk (o gawk) perchщ
|
||||
quasi tutti i sistemi ne sono provvisti. Se ш disponibile un'altro linguaggio
|
||||
di scripting, come il perl, esso puЄ anche essere utilizzato.
|
Загрузка…
x
Ссылка в новой задаче
Block a user