
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 tar
encontra uma -C
opçã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 -C
opções torna a segunda -C
relativa à primeira.
$ tar -vcf archive.tar.gz -C ./a . -C ../b .
./
./file001
./
./file002
Porque -C
não ajusta a entrada [FILE...],expansão de caminho(...globbing) não funcionará. No entanto, nos casos em que o globbing é necessário, --transform
pode 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