fbpx

Comandos Linux – Comando cpio

Comando Linux cpio

Atualizado: 05/04/2019 por Computer Hope

comando cpio

O cpio copia arquivos de e para arquivos.

Descrição

O GNU cpio é uma ferramenta para criar e extrair arquivos, ou copiar arquivos de um lugar para outro. Ele lida com muitos formatos cpio, além de ler e gravar arquivos tar .

Os seguintes formatos de arquivo são suportados: binário , ASCII antigo, novo ASCII, CRC , binário HP-UX, ASCII antigo HP-UX, alcatrão antigo e alcatrão POSIX .1. O formato tar é fornecido para compatibilidade com o programa tar . Por padrão, o cpio cria arquivos de formato binário, para compatibilidade com programas cpio mais antigos. Ao extrair de arquivos, o cpio reconhece automaticamente que tipo de arquivo está lendo e pode ler arquivos criados em máquinas com uma ordem de bytes diferente.

Sintaxe

Sintaxe do modo de cópia de saída:

No modo de cópia, o cpio copia os arquivos em um arquivo morto. Ele lê uma lista de nomes de arquivos , um por linha, na entrada padrão e grava o arquivo na saída padrão. Uma maneira típica de gerar a lista de nomes de arquivos é com o comando find ; você deve encontrar a opção -thp para minimizar problemas com permissões em diretórios ilegíveis. Sintaxe do modo de cópia de saída:

  cpio {-o | --criar} [-0acvABLV] [-C bytes ] [-H formato ] [-M mensagem ] 
      [-O [[ usuário @] host :] archive ] [-F [[ usuário @] host :] archive ] 
      [- arquivo = [[ usuário @] host :] arquivo ]] [--format = formato ] 
      [--message = message ] [- null] [--reset-access-time] [--verbose] [--dot] 
      [--append] [--block-size = blocks ] [--dereference] [--io-size = bytes ] 
      [--rsh-command = command ] [--help] [--version] < lista de nomes [> archive ]

Sintaxe do modo de cópia de entrada:

No modo de cópia de entrada, o cpio copia arquivos de um arquivo ou lista o conteúdo do arquivo. Ele lê o arquivo da entrada padrão. Quaisquer argumentos de linha de comando que não sejam opções são padrões de shell globbing ; somente arquivos no arquivo morto cujos nomes correspondem a um ou mais desses padrões são copiados do arquivo morto. Ao contrário do shell, uma inicial ‘ . ’em um nome de arquivo corresponde a um curinga no início de um padrão e um’ / ’em um nome de arquivo pode corresponder a curingas. Se nenhum padrão for fornecido, todos os arquivos serão extraídos. Sintaxe do modo de cópia de entrada:

  cpio {-i | --extract} [-bcdfmnrtsuvBSV] [-C bytes ] [-E arquivo ] [-H formato ] 
      [-M mensagem ] [-R [ usuário ] [:.] [ Grupo ]] 
      [-I [[ usuário @] host :] archive ] [-F [[ usuário @] host :] archive ] 
      [--file = [[ usuário @] host :] archive ] [--make-directory] [--nonmatching] 
      [--preserve-modification-time] [--numeric-uid-gid] [--rename] [-t | --list] 
      [- swap-bytes] [- swap] [--dot] [- incondicional] [--verbose] 
      [--block-size = blocks ] [--swap-halfwords] [--io-size = bytes ] 
      [--padrão-arquivo = arquivo ] [--formato = formato ] [- proprietário = [ usuário ] [:.] [ grupo ]] 
      [--no-preserve-owner] [--message = message ] [--force-local] 
      [--nomes de arquivos absolutos] [--nomes de arquivos absolutos] [--sparse] 
      [--lyly-check-crc] [--to-stdout] [--quiet] [--rsh-command = command ] 
      [--help] [--version] [ pattern ...] [< arquivo ]

Sintaxe do modo Copy-Pass:

No modo copy-pass, o cpio copia arquivos de uma árvore de diretórios para outra, combinando as etapas de cópia e entrada sem realmente usar um arquivo. Ele lê a lista de arquivos a serem copiados da entrada padrão; o diretório no qual os copiará é fornecido como um argumento de não opção. Sintaxe do modo Copy-Pass:

  cpio {-p | --passar} [-0adlmuvLV] [-R [ usuário ] [:.] [ grupo ]] [--nulo] 
      [--reset-access-time] [--make-directory] [--link] [--quiet] 
      [--preserve-modification-time] [--condicional] [--verbose] [--dot] 
      [--dereference] [--owner = [ user ] [:.] [ group ]] [--no-preserve-owner] 
      [--sparse] [--help] [--version] diretório de destino < lista de nomes

Opções

-0 , –nullLeia uma lista de nomes de arquivos terminados por um caractere nulo , em vez de uma nova linha , para que os arquivos cujos nomes contenham novas linhas possam ser arquivados. descoberta do GNU é uma maneira de produzir uma lista de nomes de arquivos terminados em nulo. Esta opção pode ser usada nos modos de cópia e passagem de cópia.
-a , –reset-access-timeRedefina os tempos de acesso dos arquivos depois de lê-los, para que não pareçam ter sido lidos.
-A , –appendAnexar a um arquivo existente. Funciona apenas no modo de cópia. O archive deve ser um arquivo de disco especificado com a opção -O ou -F ( -file ).
-b , –swapTroque meias palavras de palavras e bytes de meias palavras nos dados. Equivalente a -sS . Esta opção pode ser usada no modo de cópia. Use esta opção para converter números inteiros de 32 bits entre máquinas big endian e little endian.
-BDefina o tamanho do bloco de E / S para 5120 bytes. Inicialmente, o tamanho do bloco é de 512 bytes.
–block-size=BLOCK-SIZEDefina o tamanho do bloco de E / S como BLOCK-SIZE * 512 bytes.
-cIdêntico a ‘ -H newc ‘; usa o novo formato portátil (SVR4). Se você deseja o antigo formato de arquivo portátil (ASCII), use ‘ -H odc ‘.
-C IO-SIZE–io-size=IO-SIZEDefina o tamanho do bloco de E / S como bytes IO-SIZE .
-d , –make-directoryCrie diretórios principais sempre que necessário.
-E FILE–pattern-file=FILELeia padrões adicionais especificando nomes de arquivos para extrair ou listar do FILE . As linhas de FILE são tratadas como se tivessem sido argumentos não opcionais ao cpio . Esta opção é usada no modo de cópia.
-f–nonmatchingCopie apenas arquivos que não correspondem a nenhum dos padrões fornecidos.
-F–file=archiveArquive o nome do arquivo a ser usado em vez da entrada ou saída padrão. Para usar uma unidade de fita em outra máquina como arquivo morto, use um nome de arquivo que comece com ‘ HOSTNAME: ‘. O nome do host pode ser precedido por um nome de usuário e um ‘ @ ‘ para acessar a unidade de fita remota como esse usuário, se você tiver permissão para fazê-lo (uma entrada no arquivo ‘ ~ / .rhosts ‘ desse usuário).
–force-localCom -F , -I ou -O , considere o nome do arquivo morto um arquivo local, mesmo que contenha dois pontos, o que normalmente indica um nome de host remoto.
-H FORMAT , –format = FORMATUse o formato de arquivo FORMAT . Os formatos válidos estão listados abaixo; os mesmos nomes também são reconhecidos em maiúsculas . O padrão no modo de cópia de entrada é detectar automaticamente o formato de arquivo morto, e no modo de cópia de impressão é ‘ bin ‘.

bin : O formato binário obsoleto.

odc : o antigo formato portátil (POSIX .1).

newc : o novo formato portátil (SVR4), que suporta sistemas de arquivos com mais de 65536 inodes .

crc : o novo formato portátil (SVR4) com uma soma de verificação adicionada.

alcatrão : o antigo formato de alcatrão.

ustar : O formato tar do POSIX .1. Além disso, reconhece os arquivos tar do GNU, que são semelhantes, mas não idênticos.

hpbin : o formato binário obsoleto usado pelo cpio do HP-UX (que armazena os arquivos do dispositivo de maneira diferente).

hpodc : o formato portátil usado pelo cpio do HP-UX (que armazena os arquivos do dispositivo de maneira diferente).

-i , –extractExecute no modo de cópia. (consulte ‘ Modo de cópia ‘).
-I arquivoArquive o nome do arquivo a ser usado em vez da entrada padrão. Para usar uma unidade de fita em outra máquina como arquivo morto, use um nome de arquivo que comece com ‘ HOSTNAME: ‘. O nome do host pode ser precedido por um nome de usuário e um ‘ @ ‘ para acessar a unidade de fita remota como esse usuário, se você tiver permissão para fazê-lo (uma entrada no arquivo ‘ ~ / .rhosts ‘ desse usuário).
-kIgnorado; para compatibilidade com outras versões do cpio.
-l , –linkVincule arquivos em vez de copiá-los, quando possível.
-L , –dereferênciaCopie o arquivo para o qual um link simbólico aponta, em vez do próprio link simbólico.
-m , –preserve-modification-timeMantenha os tempos de modificação de arquivos anteriores ao criar arquivos.
-M MENSAGEM , –mensagem = MENSAGEMImprima MESSAGE quando o final de um volume da mídia de backup (como uma fita ou um disquete ) for atingido, para solicitar ao usuário que insira um novo volume. Se MESSAGE contiver a sequência ‘ % d ‘, ela será substituída pelo número do volume atual (iniciando em 1).
-n , –numeric-uid-gidMostre o UID e o GID numéricos em vez de convertê-los em nomes ao usar a opção ‘ –verbose ‘.
–no-absolute-filenamesCrie todos os arquivos relativos ao diretório atual no modo de cópia de cópia, mesmo se eles tiverem um nome absoluto no arquivo morto.
–absolute-filenamesEste é o padrão: diga ao cpio para não remover os principais componentes de nome de arquivo que contêm ‘ .. ‘ e as principais barras dos nomes de arquivo no modo de cópia.
–no-preserve-ownerNão altere a propriedade dos arquivos; deixe-os de propriedade do usuário que os extrai. Esse é o padrão para usuários não raiz, para que os usuários do System V não inadvertidamente entreguem arquivos. Esta opção pode ser usada no modo de cópia e no modo de passagem de cópia.
-o , –createExecute no modo de cópia. (consulte ‘ Modo de cópia ‘).
-O arquivoArquive o nome do arquivo a ser usado em vez da saída padrão. Para usar uma unidade de fita em outra máquina como arquivo morto, use um nome de arquivo que comece com ‘ HOSTNAME: ‘. O nome do host pode ser precedido por um nome de usuário e um ‘ @ ‘ para acessar a unidade de fita remota como esse usuário, se você tiver permissão para fazê-lo (uma entrada no arquivo ‘ ~ / .rhosts ‘ desse usuário).
–only-verifique-crcVerifique o CRC de cada arquivo no arquivo morto, ao ler um arquivo no formato CRC. Na verdade, não extraia os arquivos.
-p , –pass-throughExecute no modo cópia-passe. (consulte ‘ modo de passagem de cópia ‘).
–quietoNão imprima o número de blocos copiados.
-r , –renameRenomeie arquivos interativamente.
-R [ usuário ] [ :. ] [ grupo ], – proprietário [ usuário ] [ :. ] [ grupo ]Defina a propriedade de todos os arquivos criados para o usuário e / ou grupo especificado nos modos de cópia e passagem de cópia. O usuário, o grupo ou ambos, devem estar presentes. Se o grupo for omitido, mas o ‘ : ‘ ou ‘ . Se o separador for fornecido, use o grupo de login do usuário fornecido. Somente o superusuário pode alterar a propriedade dos arquivos.
–rsh-command = COMANDONotifica o cpio que deve usar COMMAND para se comunicar com dispositivos remotos.
-s , –swap-bytesTroque os bytes de cada meia palavra (par de bytes) nos arquivos. Esta opção pode ser usada no modo de cópia.
-S , –swap-halfwordsTroque as meias palavras de cada palavra (4 bytes) nos arquivos. Esta opção pode ser usada no modo de cópia.
–escassoGrave arquivos com grandes blocos de zeros como arquivos esparsos. Esta opção é usada nos modos de cópia e passagem de cópia.
-t , –listImprima um sumário da entrada.
–to-stdoutExtraia arquivos para saída padrão. Esta opção pode ser usada no modo de cópia.
-u , –unconditionalSubstitua todos os arquivos, sem perguntar se deseja substituir os arquivos mais recentes existentes por arquivos mais antigos.
-v , –verboseListe os arquivos processados ​​ou, com ‘ -t ‘, forneça uma lista de índices no estilo ‘ ls -l ‘. Em um sumário detalhado de um arquivo ustar , os nomes de usuários e grupos no arquivo morto que não existem no sistema local são substituídos pelos nomes que correspondem localmente ao UID e GID numérico armazenados no arquivo.
-V , –dotImprima um ‘ . ‘para cada arquivo processado.
–versionImprima o número da versão do programa cpio e saia.

Exemplos

Ao criar um arquivo morto , o cpio pega a lista de arquivos a serem processados ​​da entrada padrão e envia o arquivo morto para a saída padrão ou para o dispositivo definido pela opção ‘ -F ‘. Normalmente, find ou ls são usados ​​para fornecer esta lista à entrada padrão. No exemplo a seguir, você pode ver as possibilidades de arquivar o conteúdo de um único diretório:

  % ls |  cpio -ov> directory.cpio

A opção ‘ -o ‘ cria o arquivo morto e a opção ‘ -v ‘ imprime os nomes dos arquivos arquivados à medida que são adicionados. Observe que as opções podem ser reunidas após um único ‘  ‘ ou podem ser colocadas separadamente na linha de comando. O ‘ > ‘ redireciona a saída do cpio para o arquivo ‘ directory.cpio ‘.

Se você deseja arquivar uma árvore de diretórios inteira, o comando find pode fornecer a lista de arquivos ao cpio :

  % encontrar .  -print-profundidade |  cpio -ov> tree.cpio

Isso pega todos os arquivos no diretório atual, os diretórios abaixo e os coloca no arquivo tree.cpio . Novamente, o ‘ -o ‘ cria um arquivo morto e a opção ‘ -v ‘ mostra o nome dos arquivos conforme eles são arquivados (consulte ‘ Modo de cópia ‘). Usando o ‘ . ‘na instrução find fornece mais flexibilidade ao fazer restaurações, pois salvará nomes de arquivos com um caminho relativo por um caminho absoluto e com fio. A opção ‘ -pthth ‘ força ‘ find ‘ a imprimir as entradas em um diretório antes de imprimir o próprio diretório. Isso limita os efeitos das permissões restritivas de diretório, imprimindo as entradas de diretório em um diretório antes do próprio nome do diretório.

A extração de um arquivo requer um pouco mais de reflexão, porque o cpio não criará diretórios por padrão. Outra característica é que ele não substituirá os arquivos existentes, a menos que especificado.

  % cpio -iv <diretório.cpio

Isso recuperará os arquivos arquivados no arquivo directory.cpio e os colocará no diretório atual. A opção ‘ -i ‘ extrai o arquivo morto e o ‘ -v ‘ mostra os nomes dos arquivos à medida que são extraídos. Se você estiver lidando com uma árvore de diretórios arquivada, precisará usar a opção ‘ -d ‘ para criar diretórios conforme necessário, algo como:

  % cpio -idv <tree.cpio

Isso pega o conteúdo do arquivo tree.cpio e o extrai para o diretório atual. Se você tentar extrair os arquivos sobre os arquivos com o mesmo nome que já existem (e tiverem o mesmo ou o tempo de modificação posterior), o cpio não extrairá o arquivo, a menos que seja solicitado pela opção -u (consulte ‘ Copiar em mode ‘).

No modo copy-pass, o cpio copia arquivos de uma árvore de diretórios para outra, combinando as etapas de cópia e entrada sem realmente usar um arquivo. Ele lê a lista de arquivos a serem copiados da entrada padrão; o diretório no qual os copiará é fornecido como um argumento sem opção (consulte ‘ Modo de passagem de cópia ‘).

  % encontrar .  -thp -print0 |  cpio --null -pvd new-dir

O exemplo mostra a cópia dos arquivos do diretório atual e dos subdiretórios para um novo diretório chamado new-dir . Algumas novas opções são a ‘ -print0 ‘ disponível no GNU find, combinada com a opção ‘ –null ‘ do cpio . Essas duas opções atuam juntas para enviar nomes de arquivos entre find e cpio , mesmo se caracteres especiais estiverem incorporados nos nomes dos arquivos. Outra é ‘ -p ‘, que diz ao cpio para passar os arquivos encontrados para o diretório ‘ new-dir ‘.

  encontrar .  -print |  cpio -ocv> / dev / fd0

Acima, o comando find listaria todos os arquivos e diretórios e o comando cpio copia os arquivos listados na unidade de disquete.

  encontrar .  -print |  cpio -dumpv / home / usuários / esperança

No exemplo acima, o comando find listaria todos os arquivos e subdiretórios do diretório atual e os canalizaria para o comando cpio , que copia esses arquivos para a conta de usuário hope .

  cpio -icuvd </ dev / fd0

O comando acima restauraria os arquivos novamente a partir do disquete.

ar – Crie, modifique e extraia arquivos de arquivos.
cat – gera o conteúdo de um arquivo.
gzip – Crie, visualize o conteúdo e extraia arquivos dos arquivos zip do GNU.
ls – lista o conteúdo de um diretório ou diretórios.
setfacl – Modifique a lista de controle de acesso de um ou mais arquivos.
tar – Crie, modifique, liste o conteúdo e extraia arquivos de arquivos tar.

14 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.