CPIO promemoria

Da PiemonteWireless.

Indice

Un promemoria sull'uso dell'utility CPIO

CPIO e' un tools molto utile, che in alcuni casi puo' sostituire degnamente cp o tar.

utilizzo di base

Creare un archivio:

localhost% find path/ -depth -print | cpio -oaV > archive.cpio
localhost% find path/ -depth -print | cpio -oaV -O archive.cpio

Creare un archivio compresso:

localhost% find path/ -depth -print | cpio -oaV | gzip -c > archive.cpio.gz

Estrarre un archivio:

localhost% cpio -imVd < archive.cpio
localhost% cpio -imVd -I archive.cpio

Listare il contenuto di un archivio:

localhost% cpio -it < archive.cpio
localhost% cpio -it -I archive.cpio

Usare cpio copy-pass per copiare la struttura di una directory in un altro posto:

localhost% find path/ -depth -print | cpio -pamVd /new/parent/dir

come regolarsi con il path

Evitare di usare path che comincino con /, perche' potrebbe creare un grave danno quando si estrae l'archivio.
E' buona pratica cambiare directory in cui (o di cui) si vuole fare cpio prima di avviare il comando.

localhost% pwd
/usr/src/linux-2.4
localhost% cd ..
localhost% find linux-2.4/ -depth -print | cpio -oaV -O linux-2.4.cpio

cpio con ssh

Per fare cpio di una directory locale, inviare l'output ad ssh e riceverlo su un cpio di un host remoto:

localhost% find path/ -depth -print | cpio -oaV | ssh user@host 'cd path/; cpio -imVd'

Ssh su un host remoto, fare cpio di una directory remota e riceverla su un cpio locale:

localhost% cd path/; ssh user@host "find path/ -depth -print | cpio -oaV" | cpio -imVd

Fare un backup di una cartella con cpio e ssh su un host remoto:

find path/ -depth -print | cpio -oaV |ssh user@host "cat > /remotepath/backups/path.2009XXXX.cpio"


cpio e rpm

Se si vuole estrarre un archivio RPM senza installarlo, occorre usare il tool "rpm2cpio" che crea uno stream cpio dei files nell'RPM.

Listare i files:

localhost% rpm2cpio foo.rpm | cpio -it
./usr/bin/foo
./usr/share/man/man1/foo.1.gz
39 blocks

notare che i path nello stream cpio iniziano con "./"

Estrarre i files:

localhost% rpm2cpio foo.rpm | cpio -imVd
..
39 blocks

Estrarre solo le manpages dal pacchetto:

localhost% rpm2cpio foo.rpm | cpio -imVd ./usr/share/man/man1/foo.1.gz



Riferimenti:


Name (required):

Website:

Comment:

Discussione:CPIO promemoria

192 Rating: 1.9/5 (7 votes cast)

Strumenti personali