AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 722967
Accepted
Manuel Jordan
Manuel Jordan
Asked: 2022-10-30 16:00:53 +0800 CST2022-10-30 16:00:53 +0800 CST 2022-10-30 16:00:53 +0800 CST

Por que o comando tar usa o comando gzip através da opção 'z'?

  • 772

No Linux Ubuntu sobre o comando 'tar' para estas versões:

tar -tzf  /path/to/filename.tar.gz # Show the content
tar -xzf  /path/to/filename.tar.gz # Extract the content 

Observe que ambos os comandos usam a zopção e, bem, eles funcionam conforme o esperado.

Através man tarde , sobre a zopção, indica:

   -z, --gzip, --gunzip, --ungzip
          Filter the archive through gzip(1).

Pergunta

  • Por que taro comando usa gzipo comando por meio da 'z'opção?

Pergunta extra

Sobre a Filter the archive through gzip(1).peça.

  • Por que é necessário "filter"nos dois comandos mostrados acima? ou Qual é o significado ou contexto de filter?
tar
  • 1 1 respostas
  • 56 Views

1 respostas

  • Voted
  1. Best Answer
    cas
    2022-10-30T16:46:51+08:002022-10-30T16:46:51+08:00

    Arquivamento e compactação são duas coisas separadas.

    A maioria dos programas de arquivamento no Windows (por exemplo zip, 7z, rar, e muitos outros) combina os dois em um programa que faz tanto o arquivamento quanto a compactação - portanto, as pessoas acostumadas a usar o Windows tendem a considerá-los apenas uma coisa inseparável.

    Embora muitos desses programas existam em unix/linux, principalmente para compatibilidade com sistemas não-unix, é muito mais comum que a funcionalidade de compactação e arquivamento seja feita por programas separados. Ao contrário dos arquivadores do MS-DOS/Windows, os programas nativos unix entendem e fazem uso de metadados de arquivos unix, como propriedade e permissões, e alguns até manipulam ACLs corretamente.

    taré um programa de arquivamento. Ele permite que um ou mais arquivos sejam armazenados em um arquivo .tar. Este arquivo não está compactado. Ele foi originalmente usado para gravar um fluxo contendo vários arquivos e metadados associados (nomes de arquivos, propriedade, permissões, etc.) em fita. Ou para um arquivo, pois qualquer fluxo de bytes pode ser redirecionado para um arquivo ou canalizado para outro programa. tarnão é o único programa de arquivamento disponível, existem muitos outros, incluindo cpio, ar, afio, paxe muito mais.

    gzipé um programa de compressão. Ele pode compactar qualquer arquivo único em uma versão compactada de si mesmo. Ou ele pode compactar dados de stdin e enviá-los para stdout (ou seja, pode funcionar como um "filtro"). Novamente, gzipnão é o único programa de compressão/descompressão disponível, é um de muitos.

    tarpode ser usado gzippara compactar um arquivo .tar antes de ser gravado no disco. E para descompactar um arquivo compactado antes de lê-lo.

    Dependendo da versão que tarvocê possui, pode ser possível usar outros programas de compactação em vez de, ou também, gzip. Por exemplo, o GNU tar tem as seguintes opções relacionadas à compressão:

    Opções de compactação

    -a, --auto-compressUse o sufixo de arquivo para determinar o programa de compactação.

    -I, --use-compress-program=COMMANDFiltre os dados através do COMMAND. Deve aceitar a -dopção, para descompressão. O argumento pode conter opções de linha de comando.

    -j, --bzip2Filtre o arquivo através do bzip2(1).

    -J, --xzFiltre o arquivo por meio de xz(1).

    --lzipFiltre o arquivo através do lzip(1).

    --lzmaFiltre o arquivo através de lzma(1).

    --lzopFiltre o arquivo através do lzop(1).

    --no-auto-compressNão use o sufixo de archive para determinar o programa de compactação.

    -z, --gzip, --gunzip, --ungzipFiltre o arquivo através do gzip(1).

    -Z, --compress, --uncompressFiltre o arquivo através do compress(1).

    --zstdFiltre o arquivo por meio de zstd(1).

    E, vale a pena notar, os outros programas de arquivamento também podem ser usados ​​com programas de compactação - por meio de opções de linha de comando como -zou -Z, etc; ou canalizando a saída do arquivador em um programa de compactação antes de redirecionar a saída do compressor para um arquivo (ou, inversamente, canalizando a saída de um programa de descompactação em um arquivador para listar ou extrair seu conteúdo)

    Você pode "misturar e combinar" os programas de arquivamento e compactação conforme necessário, permitindo que você aproveite as melhorias na tecnologia de arquivamento e/ou compactação.

    A maioria dos arquivadores, incluindo o GNU tar, suporta isso via pipes, mas o GNU tar também possui várias opções internas para alguns programas conhecidos E uma -Iopção conveniente para usar outros programas de compactação que não possuem sua própria opção interna - talvez implementar um novo algoritmo de compactação ou uma nova implementação de um algoritmo existente. Por exemplo, programas como pigz, pixz, pbzip2etc (em vez de gzip, xz, bzip2, etc) que são versões paralelizadas desses programas de compactação que podem tirar proveito de CPUs multi-core/multi-thread para reduzir bastante o tempo necessário para compactar ou descompactar os dados.


    Um "filtro" é um termo genérico para um programa usado em um pipeline para processar (e possivelmente modificar de alguma forma) a saída de um programa antes de redirecioná-lo para um arquivo ou canalizá-lo para o próximo programa no pipeline.

    Alguns programas (como tarcom -zetc) podem configurar o pipeline de filtragem, sem exigir que o usuário faça isso no shell (por exemplo tar xfz filename.tar.gz, é basicamente o mesmo que gzip -d filename.tar.gz | tar xf -, e tar cfz filename.tar.gz ...é essencialmente o mesmo que tar cf - ... | gzip > filename.tar.gz)

    Muitos programas unix são escritos para que possam ser usados ​​como filtros em um pipeline - por exemplo gzip, pode compactar um arquivo existente ou pode compactar seu fluxo de entrada (stdin) e enviar a saída para stdout .... e um programa simples como catpode basta passar seu stdin diretamente para stdout ou opcionalmente numerar as linhas (com -n), tornar o fim de linha e controle e outros códigos visíveis (com opções como -v, -E, -A, -t).

    BTW, porque os pipelines são muito úteis, é muito comum que as pessoas escrevam seus próprios scripts (em awk ou perl ou qualquer outro) para que sejam capazes de receber sua entrada de stdin e escrever para stdout - ou seja, é comum as pessoas escreverem seus filtros próprios.

    • 6

relate perguntas

  • Remova o nome do caminho ao extrair e arquivar arquivos que terminam com .log de /var/log

  • significado de traços nus neste exemplo de curl/tar

  • diretório tar para enviar apenas blocos modificados de arquivos

  • Em Solaris; encontrar, anexar a uma bola de alcatrão e comprimir a pergunta

  • bsdtar: Como evitar sobrescrever as informações do arquivo existente?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve