copia di file speciali
Luca Giuzzi
l.giuzzi a dmf.bs.unicatt.it
Sab 17 Apr 1999 22:57:02 UTC
La filosofia di unix (e di linux per conseguenza) desidera che tutte le
periferiche siano visibili in modo uniforme come files e possano venire
riconfigurate con delle opportune chiamate di sistema. Questo non \`e sempre
agevole (ad esempio l'implementazione di un framebuffer a per le SVGA su PC
\`e una cosa relativamente nuova sotto linux), ma \`e la soluzione pi\`u
desiderabile.
La mia introduzione \`e solo per chiarire che i files speciali in realt\`a
sono delle interfaccie verso dei device drivers. Il comportamento del
comando copy su di essi non \`e ben definito, ma, nel caso migliore, ha
come esito la copia di qualsiasi tipo di dato il driver vuole presentare e
non del file stesso. (ad esempio se fai un
cp /dev/hda1 pippo
puoi ottenere una copia dei contenuti della prima partizione del disco IDE
che si trova in posizione Master sul controller primario del tuo computer
nel file pippo, ma il file speciale non viene duplicato!)
Come spiegato da Maurizio Paolini, il modo migliore per trasferire dei
file speciali \`e rigenerarli col comando mknod... in particolare bisogna
notare che fra versioni differenti del kernel (1.0/1.2/2.0/2.2) alcuni
devices hanno cambiato significato, sono stati marcati come obsoleti e/o
sono stati introdotti con nuove funzionalit\`a (questo \`e stato uno
dei problemi che si sono presentati quando la gente ha fatto una upgrade
`veloce' da una vecchia distribuzione con una vecchia versione del kernel,
diciamo 2.0.0 Slackware, al nuovo 2.2); il modo migliore \`e guardare che
devices realmente ti servono e crarli... la lista dei file speciali
disponibili per linux si trova in /usr/src/linux/Documentation/devices.txt .
...riguardo la tua domanda sulla copia infine... s\`i, i files speciali
si possono copiare... solamente devi usare il comando tar... questo \`e un
esempio
( cd /dev ; tar cvpO * | tar xvpf - -C/mnt/floppy/dev )
copia tutti i files speciali in /dev nella directory /mnt/floppy/dev
(le opzioni di tar sono:
c= create
v= verbose
p= preserve permissions
O= to standard output
x= extract
f= file (ma il - che segue sigifica che in realt\`a \`e standar input)
-C nome = directory dove estrarre.
Il punto \`e che tar (a differenza di cp) riconosce i files speciali come
tali e li trasferisce di conseguenza. (un altro programma usabile per
fare ci\`o \`e cpio)
Ciao,
lg
Maggiori informazioni sulla lista
Lug
|