cpio VS tar e cp

6

Acabei de saber que o cpio tem três modos: cópia, cópia e passagem.

Eu queria saber quais são as vantagens e desvantagens do cpio nos modos cópia e cópia no tar. Quando é melhor usar o cpio e quando usar o tar?

Pergunta semelhante para o cpio no modo pass-through versus cp.

Obrigado e cumprimentos!

    
por Tim 07.06.2010 / 00:33

4 respostas

7

Esta é uma visão geral extremamente genérica:

O CPIO faz um trabalho melhor de duplicação de um sistema de arquivos, incluindo fazer backups. Ele preserva coisas como hardlinks, fifos e outros recursos de arquivo não-padrão. A maioria das implementações do CPIO faz tudo o que o TAR faz, incluindo a leitura e gravação de arquivos .tar. O CPIO geralmente recebe uma lista de arquivos da entrada padrão para o arquivamento; isso torna muito fácil canalizar uma lista de outra coisa (como find ).

O repasse de CPIO é muito útil se você tiver uma lista muito longa de arquivos que deseja copiar do diretório A para o diretório B. (Por exemplo, você pode usar find para localizar todos os arquivos que foram alterados nos últimos 2 anos no seu sistema)

O TAR faz um trabalho melhor de simplesmente descarregar todos os seus arquivos padrão para / de uma fita (ou arquivo). É um pouco mais simples de usar (para tarefas mais comuns). Ele atende facilmente às demandas de backup simples da maioria das pessoas; e a maior parte da popularidade é desse fato.

E agora para a boa impressão. Existem várias versões e implementações diferentes do CPIO e do TAR. Cada um tem recursos diferentes e alguns têm opções de linha de comando diferentes. Há coisas que cada um pode fazer onde o outro não pode; Se você se encontrar limitado por um, tente o outro. Todo mundo tem um favorito, e 99% do tempo irá realizar a tarefa.

    
por 07.06.2010 / 21:14
1

No redhat AE 3, descobri que o cpio tinha uma limitação de tamanho de 2 GBytes em um fluxo de saída. No entanto, o tar não tinha essa limitação.

Outros sistemas podem ter diferentes limitações.

    
por 07.06.2010 / 20:47
0

Eu também prefiro o CPIO. No entanto, ao usar cpio no conjunto de arquivos de origem desconhecida (como arquivos criados por usuários finais), é melhor trabalhar com NUL nomes de arquivos terminados: use -print0 flag para localizar e adicionar 0 flag a% código%. Desta forma, arquivos com nomes estranhos (como os que incluem cpio caracteres) serão tratados corretamente.

cd / && find . -xdev -print0 | cpio -pmdu0 /mnt/
    
por 10.06.2011 / 14:14
0

Não vejo razão para usar o cpio por qualquer motivo que não seja ripar arquivos RPM abertos, via disrpm ou rpm2cpio , mas pode haver casos em que o cpio é preferível ao tar.

História e popularidade

Ambos os tar e cpio são formatos de arquivo concorrentes que foram introduzidos em Versão 7 do Unix em 1979 e incluídos em < href="https://en.wikipedia.org/wiki/POSIX"> POSIX .1-1988, embora apenas o tar permanecesse no próximo padrão, POSIX.1-2001 1 .

O formato de arquivo do Cpio foi alterado várias vezes e não permaneceu totalmente compatível entre as versões. Por exemplo, agora há uma representação codificada em ASCII de dados de informações de arquivos binários.

O Alcatrão é mais universalmente conhecido, tornou-se mais versátil ao longo dos anos e tem maior probabilidade de ser apoiado em um determinado sistema. O Cpio ainda é usado em algumas áreas, como o formato Red Hat (RPM), embora RPM v5 (que é reconhecidamente obscuro) usa xar em vez de cpio.

Ambas vivem na maioria dos sistemas semelhantes ao Unix, embora o tar seja mais comum. Aqui estão as estatísticas de instalação do 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)

Modos

Copiar : é para criação de arquivo, semelhante a tar -pc

Copiar : é para extração de arquivos, semelhante a tar -px

Passagem : Isso é basicamente os dois itens acima, semelhante a tar -pc … |tar -px , mas em um único comando (e, portanto, microscopicamente mais rápido). É semelhante a cp -pdr , embora tanto o cpio quanto o (especialmente) tar tenham mais personalização. Além disso, considere rsync -a , que muitas vezes as pessoas esquecem, pois é mais comumente usado em uma conexão de rede.

Eu não comparei o desempenho deles, mas espero que eles sejam bastante semelhantes em CPU, memória e tamanho do arquivo (após a compactação).

    
por 07.07.2016 / 04:08