cpio VS tar e cp

Ho appena imparato che cpio ha tre modi: copy-out, copy-in e pass-through.

Mi chiedevo quali sono i vantaggi e gli svantaggi di cpio sotto copia e modalità di copia sul catrame. Quando è meglio utilizzare cpio e quando usare catrame?

  • Come fare un per loop di nomi di file con spazi che utilizzano la ricerca
  • Bash: eseguire il command sui risultati di FIND
  • `sudo` con alias in Bash
  • come eseguire più script di shell in parallelo
  • Ubuntu cp -p sul pool ZFS montato
  • gatto * | grep qualcosa ... quale file è il risultato?
  • Simile domanda per cpio in modalità pass-through versus cp.

    Grazie e saluti!

  • Tar: evitare l'archiviazione di file di size maggiori
  • Come posso spostare i file in un archivio zip da un file batfile?
  • Soluzioni automatiche di stoccaggio automatiche a domicilio con Linux? (Memoria -> SSD -> HDD -> memory remota)
  • Come escludere i file dall'archivio TAR utilizzando espressioni regolari?
  • Exchange Practices di archiviazione
  • Utilizzare VMWare per archiviare una vecchia macchina causa problemi di triggerszione
  • 4 Solutions collect form web for “cpio VS tar e cp”

    Questa è una panoramica estremamente generica:

    CPIO esegue un lavoro migliore di duplicazione di un file system, incluso il backup dei file. Conserva le cose come i collegamenti hardlinks, i fifos e altre funzionalità di file non-standard. La maggior parte delle implementazioni di CPIO fanno tutto il TAR, inclusi i file .tar di lettura e scrittura. CPIO prende solitamente un elenco di file dall'ingresso standard all'archivio; questo rende molto facile fare un elenco da qualcos'altro (come find ).

    Il passthrough di CPIO è molto utile se si dispone di un elenco molto lungo di file che si desidera copiare dalla directory A alla directory B. (Ad esempio, è ansible utilizzare la find per individuare tutti i file che sono stati modificati negli ultimi 2 anni nel sistema)

    TAR fa un lavoro migliore semplicemente di scaricare tutti i file standard da / da un nastro (o un file di archivio). È un po 'più semplice da usare (per le attività più comuni). Soddisfa facilmente le richieste di backup più semplici; e la maggior parte della sua popolarità è da questo fatto.

    E adesso per la bella printing. Ci sono diverse versioni e implementazioni di CPIO e TAR. Ognuna ha caratteristiche diverse e alcune hanno diverse opzioni di row di command. Ci sono cose che ognuno può fare quando l'altro non può; se ti trovi limitati da uno, prova l'altro. Ognuno ha un favorito, e il 99% del tempo farà il task.

    Su AE 3 redhat, ho scoperto che cpio aveva una limitazione di dimensione di 2 GBytes su un stream di output. Tuttavia, il catrame non ha questa limitazione.

    Altri sisthemes potrebbero avere diverse limitazioni.

    Preferisco anche CPIO. Tuttavia, quando si utilizza cpio su un set di file di origine sconosciuta (come i file creati dagli utenti finali) è meglio lavorare con i nomi di file terminati NUL : usare il flag -print0 per trovare e aggiungere flag 0 a cpio . In questo modo i file con nomi strani (come quelli che includono i caratteri CRNL ) verranno trattati correttamente.

     cd / && find . -xdev -print0 | cpio -pmdu0 /mnt/ 

    Non vedo alcuna ragione per utilizzare cpio per qualsiasi motivo, tranne la copia di file RPM aperti, tramite disrpm o rpm2cpio , ma ci possono essere casi d'angolo in cui cpio è preferibile al catrame.

    Storia e popolarità

    Sia tar e cpio sono formati di concorrenza concorrenti che sono stati introdotti in Version 7 Unix nel 1979 e poi inclusi in POSIX .1-1988, anche se solo il catrame è rimasto nello standard successivo, POSIX.1-2001 1 .

    Il formato di file di Cpio è cambiato più volte e non è rimasto completamente compatibile tra le versioni. Ad esempio, ora è presente una rappresentazione codificata ASCII dei dati di informazioni sui file binari.

    Tar è più conosciuto in tutto il mondo, è diventato più versatile nel corso degli anni e è più probabile che sia supportto su un dato sistema. Cpio è ancora utilizzato in alcune aree, come il formato del pacchetto Red Hat (RPM), anche se RPM v5 (che è assolutamente oscuro) utilizza xar invece di cpio.

    Entrambi vivono nella maggior parte dei sisthemes Unix, anche se il catrame è più comune. Ecco le statistiche di installazione di Debian :

     #rank name inst vote old recent no-files (maintainer) 13 tar 189206 172133 3707 13298 68 (Bdale Garbee) 61 cpio 189028 71664 96346 20920 98 (Anibal Monsalve Salazar) 

    Modalità

    Copia : Questo è per la creazione di archivio, simile a tar -pc

    Copia-in : Questo è per l'estrazione dell'archivio, simile a tar -px

    Pass-through : Questo è sostanzialmente entrambi di quanto sopra, simile a tar -pc … |tar -px ma in un singolo command (e quindi microscopicamente più veloce). È simile a cp -pdr , anche se sia cpio che (in particolare) catrame hanno più personalizzabilità. Consideriamo anche rsync -a , che la gente spesso dimentica poiché è più utilizzata in una connessione di networking.

    Non ho confrontato le loro performance, ma mi aspetto che saranno molto simili nella CPU, nella memory e nelle size dell'archivio (dopo la compressione).

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.