Explicação detalhada do comando tar no Linux

1. Visão geral do comando tar

Tar (Tape ARchive, abreviatura de tape archive, anotação de tradução LCTT: originalmente projetado para empacotar arquivos em fita, agora o usamos principalmente para fazer backup de uma determinada partição ou de alguns diretórios importantes).
tar é um comando amplamente usado em sistemas do tipo Unix para arquivar vários arquivos ou diretórios em um único arquivo, e o arquivo pode ser ainda mais compactado usando tecnologias como gzip ou bzip2. Em outras palavras, o comando tar também pode ser usado para backup: primeiro arquive vários arquivos e diretórios em um único arquivo tar ou arquivo compactado e, em seguida, extraia os arquivos e diretórios no arquivo tar quando necessário.

A sintaxe do comando tar é a seguinte:

# tar <选项> <文件>

As opções do comando tar são descritas em detalhes abaixo.

As opções do comando tar são divididas em diferentes operações, incluindo opções gerais e opções de compactação. A tabela a seguir lista opções comuns, versões longas das opções e descrições:

opções de operação tar
O comando tar requer uma das três opções a seguir:

Opções descrever
-c,--criar Crie um novo arquivo
- x、-- extrair Extrair do arquivo existente
-t,-- lista Listar diretórios arquivados

Opções gerais de alcatrão selecionadas

Opções descrever
- v 、-- detalhado Informações detalhadas mostrando quais arquivos foram arquivados ou extraídos
- f、-- arquivo= nome do arquivo, esta opção deve ser seguida pelo nome do arquivo a ser usado ou criado
- p、-- preservar-permissões A extração do arquivo preserva as permissões de arquivos e diretórios sem remover o umask

opções de compactação tar

Opções descrever
-z,--gzip Use compactação gzip (.tar.gz)
-j、--bzip2 Use compactação bzip2 (.tar.bzip2), a taxa de compactação do bzip2 geralmente é maior que a do gzip
- J 、-- xz Usando compactação xz (.tar.xz), a taxa de compactação de xz geralmente é maior que bzip2

2. Arquivar arquivos e diretórios

Crie uma nova sintaxe de arquivo:

create -cf 要创建的存档文件名  要添加到该归档文件的文件和目录列表

Os exemplos são os seguintes:

-- 将file1、 file2、 file3归档到 archive.tar
# tar -cf archive.tar file1 file2 file3  

--查看归档文件
# ls archive.tar

O comando tar acima também pode ser executado com a opção de versão longa:

# tar --file=archive.tar --create  file1 file2 file3

Para que o tar possa arquivar os arquivos selecionados, os arquivos devem ser legíveis pelo usuário que executa o comando tar.

Observação:
Antes de criar um arquivo tar, verifique se não há outro arquivo no diretório com o mesmo nome do novo arquivo que você deseja criar.
O comando tar substituirá os arquivos existentes em vez de fornecer um aviso.

3. Liste o conteúdo do arquivo

Sintaxe do conteúdo do arquivo de lista:

# tar -tf  存档名称

Os exemplos são os seguintes:

--查看 /root目录下归档文件etc.tar包含的内容
# tar -tf  /root/etc.tar

4. Extraia arquivos do arquivo

O comando tar extrai arquivos relativos ao diretório atual, por exemplo:

--将 /root/etc.tar文档中的文件恢复到/root/etcbackup目录
# mkdir /root/etcbackup
# cd /root/etcbackup
# tar -xf  /root/etc.tar

Observação:
os arquivos tar geralmente devem ser extraídos para um diretório vazio para garantir que nenhum arquivo existente seja sobrescrito.
Quando o root extrai um arquivo, o comando tar retém a propriedade original do usuário e do grupo dos arquivos.
Se um usuário comum extrair um arquivo usando tar, a propriedade do arquivo pertencerá ao usuário que extraiu o arquivo do arquivo.

Por padrão, ao extrair arquivos de um arquivo, a umask será removida das permissões do conteúdo do arquivo. Para preservar as permissões do arquivo compactado, use a opção p ao extrair o arquivo compactado.
No exemplo acima, se desejar manter as permissões dos arquivos extraídos ao extrair o conteúdo do arquivo /root/etc.tar, você pode executar o seguinte comando:

# tar -xpf  /root/etc.tar

5. Crie um arquivo compactado

O comando tar suporta três métodos de compactação: gzip, bzip2 e xz. Exemplos serão dados abaixo.

Exemplo 1: Crie um arquivo compactado gzip /root/etcbackup.tar.gz cujo conteúdo vem do diretório /etc no host

# tar -czf  /root/etcbackup.tar.gz /etc

Exemplo 2: Crie um arquivo compactado bzip2 /root/logbackup.tar.bz2 cujo conteúdo vem do diretório /var/log no host

# tar -cjf  /root/logbackup.tar.bzip2 /var/log

Exemplo 3: Crie um arquivo compactado xz /root/sshbackup.tar.xz cujo conteúdo vem do diretório /etc/ssh no host

# tar -cJf  /root/sshbackup.tar.xz /etc/ssh

6. Extraia o arquivo compactado

O comando tar determinará o método de compactação usado anteriormente. Portanto, geralmente não há necessidade de usar as mesmas opções de compactação usadas na criação do documento.
Você pode adicionar métodos de descompactação ao comando tar, mas deve usar a opção de tipo de descompactação correta, caso contrário, tar irá gerar um erro informando que o tipo de descompactação especificado na opção não corresponde ao tipo de descompactação do arquivo.match.

Exemplo 1: Extraia o conteúdo do arquivo compactado gzip /root/etcbackup.tar.gz para o diretório /tmp/etcbackup

# mkdir /tmp/etcbackup
# cd /tmp/etcbackup
# tar -xzf  /root/etcbackup.tar.gz /etc

Exemplo 2: Extraia o conteúdo do arquivo compactado bzip2 /root/logbackup.tar.bz2 para o diretório /tmp/logbackup

# mkdir /tmp/logbackup
# cd /tmp/logbackup
# tar -xjf  /root/logbackup.tar.bzip2 /tmp/logbackup

Exemplo 3: Extraia o conteúdo do arquivo compactado xz /root/sshbackup.tar.xz para o diretório /tmp/sshbackup

# tar -xJf  /root/sshbackup.tar.xz /tmp/sshbackup

7. Compactação e descompactação de um único documento

gzip, bzip2 e xz podem ser usados ​​sozinhos para compactar um único arquivo. Os exemplos são os seguintes:

--以gzip方式压缩文件etc.tar,会生成压缩文件 etc.tar.gz
# gzip etc.tar

--以bzip2方式压缩文件abc.tar,会生成压缩文件 abc.tar.bz2
# bzip2 abc.tar

--以xz方式压缩文件log.tar,会生成压缩文件 log.tar.xz
# xz log.tar

O comando de descompressão correspondente é o seguinte:

-- 将生成解压缩文件etc.tar
# gunzip etc.tar.gz

--将生成解压缩文件abc.tar
# bunzip2 abc.tar.bz2

--将生成解压缩文件 log.tar
# unxz log.tar.zx

おすすめ

転載: blog.csdn.net/Ruishine/article/details/134439661