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 / ubuntu / Perguntas / 1443363
Accepted
fixit7
fixit7
Asked: 2022-12-01 20:01:53 +0800 CST2022-12-01 20:01:53 +0800 CST 2022-12-01 20:01:53 +0800 CST

Criando arquivos tar sem incluir os diretórios

  • 772

Eu sou relativamente novo usando tar tendo usado arquivos zip no passado.

Eu quero apenas criar o arquivo tar sem os diretórios serem incluídos.

Eu fui aqui, mas achei um pouco confuso.

https://www.baeldung.com/linux/tar-archive-without-directory-structure

# Backup crontab
crontab -l > /home/andy/bin/crontab_backup.txt
tar -cvf /home/andy/bin/crontab_backup.tar /home/andy/bin/crontab_backup.txt
20.04
  • 3 3 respostas
  • 691 Views

3 respostas

  • Voted
  1. muru
    2022-12-02T00:13:51+08:002022-12-02T00:13:51+08:00

    Para o seu exemplo específico, se você cdomitir /home/andy/binesse caminho nos comandos, obterá o resultado desejado:

    # Backup crontab
    cd /home/andy/bin
    crontab -l > crontab_backup.txt
    tar -cvf crontab_backup.tar crontab_backup.txt
    

    Esta é a sugestão em 3.2 Usando o comando tar no diretório de destino na página à qual você vinculou e é provavelmente a maneira mais simples para esse problema específico.

    O equivalente a 3.1. Usar a opção -C para um único diretório seria:

    crontab -l > /home/andy/bin/crontab_backup.txt
    tar -cvf /home/andy/bin/crontab_backup.tar -C /home/andy/bin crontab_backup.txt
    

    Existe outra opção que não é mencionada na página vinculada: --transform, que nos permite usar uma s/<pattern>/<replacement>/expressão como em sed.

    crontab -l > /home/andy/bin/crontab_backup.txt
    tar -cvf /home/andy/bin/crontab_backup.tar /home/andy/bin/crontab_backup.txt --transform 's,.*/,,'
    
    • 7
  2. Best Answer
    user253751
    2022-12-02T07:01:00+08:002022-12-02T07:01:00+08:00

    Com o GNU, tarvocê pode usar a -Copção de alterar o diretório no meio do comando. Os nomes de arquivos ainda são registrados em relação ao diretório atual, então isso significa que você pode fazer isso:

    tar -cvf /home/andy/bin/crontab_backup.tar -C /home/andy/bin crontab_backup.txt
    

    e se você quiser coletar dois arquivos de diretórios diferentes, poderá fazer isso:

    tar -cvf /home/andy/bin/crontab_backup.tar -C /home/andy/bin crontab_backup.txt -C /home/andy other_file.txt
    
    • 3
  3. vanadium
    2022-12-01T23:54:33+08:002022-12-01T23:54:33+08:00

    O tarcomando realmente não tem opções para não armazenar a estrutura de diretórios, de acordo com a filosofia linux de "faça uma coisa e faça bem feito".

    A página a que você se refere fornece alguns truques para armazenar arquivos sem a estrutura de diretórios. No entanto, esses truques são muito limitados em seu poder e exigem que você especifique cada diretório de nível mais baixo que contém arquivos. O truque já falhará se também houver arquivos em diretórios no meio da árvore. Tarring estes incluirá os diretórios inferiores.

    Como tal, não é possível de forma totalmente automatizada. Uma maneira mais automatizada exigiria a preparação de um diretório contendo todos os arquivos da árvore de diretórios no diretório de nível superior primeiro e, em seguida, tar esse diretório. Em um sistema de arquivos que suporta permissões linux, isso pode ser feito usando hard links, portanto, nenhum espaço extra é necessário para a cópia temporária.

    Você poderia fazer isso com find:

    find /path/to/parent/dir -type f -exec ln {} /path/to/new/dir \;
    

    então você pode tar o diretório direm /path/to/new.

    • 2

relate perguntas

  • Como posso configurar a resolução de domínio curinga local (127.0.0.1) em 18.04..20.04?

Sidebar

Stats

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

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

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