Como criar um arquivo tar para uma pasta específica a partir de uma pasta diferente

Como criar um arquivo tar para uma pasta específica a partir de uma pasta diferente

Olá pessoal, sou novo no Linux.

Estou tentando criar um arquivo tar de um diretório diferente e quero que seja colocado em um diretório específico.

Eu tentei este cmd

tar -cvf dailybackup.tar /root/filesfromlocalmachine/ -C /root/backup/

Existe uma pasta com o nome pf backup e quero que o tar seja criado lá. Mas sempre que executo isso o tar é criado na pasta onde estou executando o comando. Existe uma maneira de criar um arquivo tar de uma pasta diferente.

Responder1

Sim, coloque o diretório antes do "tar".

cd /
tar -cvf /where/to/put/it/dailybackup.tar root/backup/

e ele fará backup root/backup.

Eu sugeriria sempre fazer backups com um caminho relativo (como usei em minha resposta), caso contrário você poderá sobrescrever o destino quando quiser restaurá-lo em outro lugar e depois comparar com a versão de backup.

Responder2

Sempre que tarencontra uma -Copção, o diretório de trabalho atual muda, todas as opções subsequentes a seguir são afetadas. Isso torna esta opção sensível à ordem.

./a:      ./b:
file001   file002

por exemplo, usar múltiplas -Copções torna a segunda -Crelativa à primeira.

$ tar -vcf archive.tar.gz -C ./a . -C ../b .  
./  
./file001  
./  
./file002

Porque -Cnão ajusta a entrada [FILE...],expansão de caminho(...globbing) não funcionará. No entanto, nos casos em que o globbing é necessário, --transformpode ser usado.

$ tar -cvf archive.tar.gz \
    --show-transformed-names --transform='s:^./.*/::' ./[ab]/file00?
file001
file002

também '--strip-components=<n>'pode ser usado para remover componentes principais na extração.

$ tar -vxf archive.tar.gz \
    --show-transformed-names --strip-components=2  
file001  
file002

informação relacionada