Renomear diretório com tar

3

Eu tenho alguns diretórios, quero compactar em um arquivo tgz:

/home/stofl/myproject/migrations/
/home/stofl/myproject/source/
/path/to/my/migration/tool/source/

O arquivo deve ter a seguinte estrutura:

migrations/
source/
my_migration_tool/

Preciso copiar a ferramenta de migração para /home/stofl/myproject/ (ou criar um link simbólico) ou existe outra maneira?

EDITAR

O arquivo pode ser compactado com gzip depois. Então, talvez haja uma maneira de anexar o diretório ao tar archive com --append , mas não encontrei uma maneira de dizer tar para usar um nome diferente.

    
por stofl 26.03.2013 / 12:04

1 resposta

3

Como o arquivo deve ter caminhos relativos ( migrations/ source/ my_migration_tool/ ), teria de haver um arquivo criado a partir de /home/stofl/myproject .

Como você mencionou, você poderia anexar um diretório ao arquivo tar ( tar só permite anexar arquivos não compactados pelo gzip). Mas isso não renomearia o terceiro diretório para my_migration_source:

cd /home/stofl/myproject
tar cvf myprojects.tar migrations source
/path/to/my/migration
# appends contents of tool to archive
tar -rv --file /home/stofl/myproject/myprojects.tar tool 

A opção mais fácil que eu acho seria usar um link simbólico -:

cd /home/stofl/myprojec 
ln -s my_migration_tool /path/to/my/migration/tool/source/
# tar H option to follow symbolic links
tar cvfH myprojects.tar migrations source my_migration_tool
    
por 26.03.2013 / 12:50

Tags