Ho ricevuto una distribuzione software Unix come file compresso cpio. Qual è il comando migliore per estrarre i file?
Ho ricevuto una distribuzione software Unix come file compresso cpio. Qual è il comando migliore per estrarre i file?
Risposte:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Mentre questa è una vecchia domanda, si presenta in alto su Google, quindi ho pensato di poterlo aggiornare. Sono d'accordo con la risposta accettata in generale, ma è necessario aggiungere "--no-absolute-filenames" a meno che non si intenda sovrascrivere file di sistema importanti sulla propria macchina. Inoltre, personalmente, preferisco "zcat" rispetto a "gzip -cd" o "gunzip -c".
Infine, tieni presente che devi eseguire cpio come root (ad esempio sudo) se stai estraendo un filesystem di root che contiene nodi di dispositivo.
Questa pagina di Wikipedia cpio
ha alcune buone note.
Per maggiori dettagli, consultare il cpio
manuale .
Un collegamento dalla stessa pagina di Wikipedia discute il confronto con gli tar
archivi .
E, ecco un esempio di utilizzo cpio
con il tar
formato .
Ad esempio, per estrarre i contenuti archiviati di / etc / httpd / nella directory corrente, creando sottodirectory ./etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
La risposta accettata e quella di Matt mi sono state entrambe utili, ma sono rimasta perplessa per un po 'a causa di tre dettagli:
--no-absolute-filenames
deve precedere il modello sulla riga di comando/
dai nomi dei file, anche il modello corrispondente deve omettere il lead/
man cpio
cosa hai visto?